浏览 6303 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2006-09-12
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的紀錄. 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2006-09-13
楼主的话事方式很不错,带有思考过程
当然,内容也不错 |
|
返回顶楼 | |
发表时间:2006-09-13
引用 tianxinet 楼主的话事方式很不错,带有思考过程 当然,内容也不错 多谢!因有你的支持我会骄傲...(不是,打错)..我会努力才对! |
|
返回顶楼 | |
发表时间:2006-09-13
楼主啲話事好叻啵 我识做嘞 |
|
返回顶楼 | |