IDENTITY_INSERT 設置


insert into OrderList(id,OrderName) values(4520,'電子傳票訂單')

執行上面語句會提示一個錯誤:

服務器:  消息  544,級別  16,狀態  1,行  1
      當 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  語句,則  Microsoft®  SQL  Server™  返回一個錯誤信息,指出  SET  IDENTITY_INSERT  已設置為  ON  並報告此屬性已設置為  ON  的表

(2) 如果插入值大於表的當前標識值,則 SQL  Server  自動將新插入值作為當前標識值使用

(3) SET IDENTITY_INSERT  的設置是在執行或運行時設置,而不是在分析時設置

上面執行語句中:把要執行的語句前后加上該設置,當然上面針對事一條記錄插入操作,在這條記錄插入操作后,如果再次插入數據時,沒有啟用該設置,Orderid主鍵列會根據上面自定義表示4520,自動增長到 4521 這個操作很靈活關鍵看個人怎么利用.

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM