sql server中,對涉及到含有 自增【identity(起始值x,公差y)】屬性 列 的insert into的操作方法 及 步驟:

慢才後生發表於2018-06-20

sqlserver學習,為表插入資料 過程中遇到了一個問題,系統提示:

訊息 8101,級別 16,狀態 1,第 57 行
僅當使用了列列表並且 IDENTITY_INSERT 為 ON 時,才能為表'goods'中的標識列指定顯式值。


經過嘗試,以下是我的總結:


假設有 表goods 列id[自增屬性],name,city,price

方法一        (直接對 [自增屬性]列id之外的其他列 進行插入操作 )

INSERT INTO goods (name,city,price) VALUES

('沃特籃球鞋', '佛山', '180');  


方法二

(1)set   identity_insert    goods  ON;
(2)INSERT INTO      goods (id,name,city,price)     VALUES
    ('4','沃特籃球鞋', '佛山', '180');

        注意:不知道為什麼,這裡不可以這樣寫:INSERT INTO     goods     VALUES    ('4','沃特籃球鞋', '佛山', '180');

    也不能像方法一那樣寫!否則,系統會提示錯誤:

     訊息 545,級別 16,狀態 1,第 76 行
     當 IDENTITY_INSERT 設定為 ON 或某個複製使用者向 NOT FOR REPLICATION 標識列中插入內容時,必須為表 'users' 中的標 識列指定顯式值。

(3)set identity_insert goods  OFF;    ------把資料插入表goods 後必須 OFF,否則就不能對後續的其他表 進行插入操作。

        系統會提示:

         訊息 544,級別 16,狀態 1,第 57 行

         當 IDENTITY_INSERT 設定為 OFF 時,不能為表 'items' 中的標識列插入顯式值。



測試環境:sql server2014

作者原創,轉載本文須註明出處!!!

相關文章