`
毛冬
  • 浏览: 78535 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
社区版块
存档分类
最新评论

MySQL & MSSQL 中的自動增長字段的不同

阅读更多
表test中有一字段keyid  int 自增長類型
MySQL:
      在insert & update 的語句中
     
insert into test(keyid)values(100);
           update test set keyid = 101;


      上述語句可以正常執行!

MSSQL:
     
insert into test(keyid)values(100);
           update test set keyid = 101;
......

      上述情況就會出錯! 異常的信息大概意思是:在insert & update 語句中不能用到keyid(自動增長字段)!
      
      
Cannot insert explicit value for identity 
            column in table 'test' when IDENTITY_INSERT 
            is set to OFF.
      
........




第一次補充
       在MSSQL中產生上述錯誤。經我在網上一番搜掠之後! 是因爲我沒有把IDENTITY_INSERT 設為 ON .
     
   
引用
语法
SET IDENTITY_INSERT [ database.[ owner.] ] { table } { ON | OFF }

参数
database

是指定的表所驻留的数据库名称。

owner

是表所有者的名称。

table

是含有标识列的表名。


    不過可惜的是.我把IDENTITY_INSERT 設為 ON了,但是在insert數據時還是報同樣的錯誤!天啊!HELP ME~ME~ME!


第二次補充
     如果要把IDENTITY_INSERT 設為 ON生效! 就要在insert & update語句前執行!
在MSDN中找到:
        
引用
不論何時,工作階段中只能有一份資料表將

            IDENTITY_INSERT 屬性設為 ON。如果已有資料表的這個屬性設為 ON,又針對另一份資

             料表發出 SET IDENTITY_INSERT ON 陳述式,SQL Server 2005 會傳回一則錯誤訊

          息,指出 SET IDENTITY_INSERT 已設為 ON,且會報告設為 ON 所針對的資料表。

            如果輸入的值大於資料表目前的識別值,SQL Server 會自動利用新插入的值來作為目前的識別值。

SET IDENTITY_INSERT 的設定是在執行階段進行設定,而不是在剖析階段進行設定。



     當我打字打到這裡的時候.我突然想起我所說的已經偏離了我一開始所要講的.不過,無關係!我的BLOG,我話事!

      在MSSQL中所謂的顯式:

   
insert into test(keyid)values(100);
                   insert into test(keyid)values(0);
.....

    當keyid最大值是99時!平且沒有一條記錄keyid == 0;
    那麽這兩條語句將會成功插入!其中keyid == 100 & keyid == 0
  
   OK!我們將環境轉去MySQL:

insert into test(keyid)values(100);
             insert into test(keyid)values(0);
.....

     當keyid最大值是99時!平且沒有一條記錄keyid == 0;
   
     那麽這兩條語句將會成功插入!但是結果與MSSQL有所不同!
  
      執行完第一條語句時:將產生一條keyid == 100的紀錄.
    
     執行完第二條語句時:產生了一條keyid == 101的紀錄.

   
分享到:
评论
3 楼 buaawhl 2006-09-13  

楼主啲話事好叻啵

我识做嘞
2 楼 毛冬 2006-09-13  
引用

tianxinet    
楼主的话事方式很不错,带有思考过程
当然,内容也不错




多谢!因有你的支持我会骄傲...(不是,打错)..我会努力才对!
1 楼 tianxinet 2006-09-13  
楼主的话事方式很不错,带有思考过程
当然,内容也不错

相关推荐

    MSSQL to MySQL【MSSQL到MySQL数据库转换程序

    1. **数据映射**:程序会自动识别MSSQL中的表结构、字段类型,并将其映射到MySQL兼容的格式,确保数据在转换过程中不失真。 2. **数据迁移**:将MSSQL数据库中的数据记录转移到MySQL数据库,这可能涉及批量导入、...

    MsSql数据导入MySql

    在IT行业中,数据库迁移是一项常见的任务,特别是在不同的数据库系统之间,如从Microsoft SQL Server (MSSQL) 迁移到MySQL。本案例中,我们探讨的是如何利用`LOAD DATA LOCAL INFILE`语句将MSSQL的数据高效地导入到...

    linux下支持MSSQL和MYSQL的安装方法

    在Linux环境下同时支持并安装Microsoft SQL Server(MSSQL)和MySQL数据库系统,涉及到一系列复杂的配置与步骤。本文将详细解析这一过程中的关键知识点,帮助读者理解如何在Linux上搭建这两种数据库环境,并确保它们...

    MSSQL对比学习mysql心得(三)查看字段长度.doc

    MSSQL对比学习mysql心得(三)查看字段长度.doc

    MySQL Migration Toolkit 数据库转换工具

    虽然是demo版本,但可以转换一些字段不是很长的数据库表。 MySQL Migration Toolkit v2.3 数据库转换工具 MySQL Migration Toolkit 可以将任何数据源转换成mysql的数据,也可以将mysql的数据转换成其它类型的数据 ...

    Excel 2003/2007/2010/2013导入MYSQL_MSSQL

    4. **数据类型匹配**:确保Excel中的数据类型与MySQL表中的字段类型匹配,否则可能会出现导入错误。 **Excel导入MSSQL** 1. **准备数据**:同上,确保Excel数据的格式符合MSSQL的要求。 2. **连接MSSQL**:安装...

    MSSQL-to-MySQL v6.5

    1. **数据库结构转换**:该工具能够自动检测并转换MSSQL数据库中的表结构,包括表名、字段名、数据类型、主键、外键、索引等信息,确保MySQL数据库中的结构与原MSSQL保持一致。 2. **数据迁移**:除了结构转换,...

    MSSQL to MySql 5.3

    在IT行业中,数据库迁移是一项常见的任务,特别是在不同的数据库系统之间,比如从Microsoft SQL Server(MSSQL)到MySQL。"MSSQL to MySql 5.3"的主题涉及到的就是这样一个过程,即将MSSQL中的表结构和数据转换为...

    数据库导入软件 mssql 导入mysql

    数据库导入软件是用于在不同数据库系统之间迁移数据的工具,本例中提到的是将数据从Microsoft SQL Server(简称mssql)导出并导入到MySQL数据库。这个过程涉及到多个技术环节和概念,包括数据提取、转换和加载(ETL...

    汉语辞海38万条access格式可以转mysql与mssql.rar

    3. **设计数据库结构**:在MySQL或MSSQL中创建与Access数据库匹配的表结构,包括字段名、数据类型和索引。 4. **导入数据**:使用MySQL或MSSQL的命令行工具(如`LOAD DATA INFILE`或`bcp`)或图形界面工具(如MySQL ...

    sql注入源码(mssql,mysql)

    这个主题的压缩包文件包含了一系列与SQL注入攻击相关的源代码,主要针对Microsoft SQL Server (MSSQL) 和 MySQL数据库系统。下面我们将深入探讨这些知识点。 首先,`mssql`和`mysql`是两种广泛使用的数据库管理系统...

    MYSQL mssql脱裤

    SQL注入是最常见的一种攻击方式,攻击者通过在输入字段中插入恶意的SQL代码,绕过验证并获取未授权的访问权限。例如,文件名中的“mssql加mysql拖库脚本.php”很可能包含了可以执行SQL注入的代码,目的是从MySQL和...

    mysql sql数据转换dbconvert_mssql_mysql

    标题中的“mysql sql数据转换dbconvert_mssql_mysql”指的是一个数据迁移工具,它主要用于将Microsoft SQL Server(MSSQL)的数据转换并迁移到MySQL数据库中。这个过程在数据库管理中非常常见,特别是在需要更换...

    MySql与MsSql性能对比[文].pdf

    随着查询条数的增加,MySQL的查询时间显著增长,而MsSql的查询时间相对稳定。例如,当查询条数为5000时,MySQL用时约3秒,而MsSql仅需不到1秒。这种差距随着查询范围扩大而加大,表明MsSql在处理大型数据集和复杂...

    MSSQL数据迁移MYSQL

    5. **权限和安全性**:MSSQL和MYSQL的权限管理系统不同,迁移时要考虑到用户角色、权限设置,确保在新的MYSQL环境中能够正常访问数据。 6. **兼容性问题**:一些特定的MSSQL特性在MYSQL中可能不存在,例如,MSSQL的...

    全国交全面的省市县地区名称mysql和mssql语句.zip

    标题中的“全国交全面的省市县地区名称mysql和mssql语句.zip”表明这是一个包含数据库查询语句的压缩包,主要涉及的是中国的地理区域数据,包括省、市、县(区)的名称。这些语句可能用于在MySQL和Microsoft SQL ...

    mssql to mysql 本人亲测可用 下载即用免安装

    标题中的“mssql to mysql 本人亲测可用 下载即用免安装”表明这是一个转换工具,用于将数据从Microsoft SQL Server (MSSQL)迁移至MySQL数据库。这个工具的特点是用户可以直接下载并使用,无需进行复杂的安装过程,...

    F:\php+apache+mysql mssql windows 2003下配置多功能服务器.doc

    综上所述,本文档主要介绍了在Windows 2003操作系统下配置基于PHP、Apache、MySQL(以及MSSQL,尽管文档中没有详细介绍MSSQL的配置)的多功能服务器的过程。从软件版本的选择到具体的安装步骤,再到遇到问题时的解决...

    全国省市县地名mysql和mssql语句.V2

    在MySQL中,你可以使用CREATE TABLE语句来创建包含省市县地名的表结构,字段可能包括"省份"、"城市"、"区县"等。例如: ```sql CREATE TABLE `province_city_county` ( `id` INT AUTO_INCREMENT PRIMARY KEY, `...

Global site tag (gtag.js) - Google Analytics