問題描述:在SQL SERVER 2008中,向數據表中字段插入數據時,會報錯,錯誤如下:
當 IDENTITY_INSERT 設置為 OFF 時,不能向表 'OrderList' 中的標識列插入顯式值。
解決方案:
--允許將顯式值插入表的標識列中 ON-允許 OFF-不允許 set identity_insert OrderList ON--打開
insert into OrderList(id,ordername,createdate) values(4520,'set',getdate()) set identity_insert OrderList OFF--關閉
在這個執行插入語句時,多了一個開關設置,設置如下:
--語法: SET IDENTITY_INSERT [ database.[ owner.] ] { table } { ON | OFF } 允許將顯式值插入表的標識列中 參數說明: database:針對數據庫 table:針對某張表 ON:允許插入顯式值插入標識列 OFF:不允許
注意:
(1))任何時候,只有一個表的 IDENTITY_INSERT 屬性可以設置為 ON。如果某個表已將此屬性設置為 ON,並且為另一個表發出了 SET IDENTITY_INSERT ON 語句,則返回一個錯誤信息,指出 SET IDENTITY_INSERT 已設置為 ON 並報告此屬性已設置為ON的表。
(2)如果插入值大於表的當前標識值,則 SQL Server 自動將新插入值作為當前標識值使用。
(3)SET IDENTITY_INSERT 的設置是在執行或運行時設置,而不是在分析時設置。