僅當使用了列列表並且 IDENTITY_INSERT 為 ON 時,才能為表

TaihangMeng發表於2018-01-18

一、問題現象

    僅當使用了列列表並且 IDENTITY_INSERT 為 ON 時,才能為表'xxx'中的標識列指定顯式值 

二、原因解析

    如果想要給標識列顯示的新增資料,需要設定標識列可以顯示新增資料。 

三、解決方法

可以使用如下的方法:

set identity_insert  Table_Name on--設定標識列可以顯示新增資料
insert into Table_Name(PCId,PCUse,PCNote) values(100,1,'aaa')
set identity_insert Table_Name off--設定標識列不可以顯示新增資料 

四、總結

注意1:

要想顯示的為某表的標識列顯示新增資料,在insert語句中一定要在表後面顯示要新增的欄位,即使是所有欄位,也不能省略。

如:PCInfo(PCId,PCUse,PCNote),如果只寫PCInfo仍然不能為PCId顯示的新增資料。 

注意2:插入完資料要將identity_insert設定為OFF。

若不關閉,則再次新增資料時,無法自增長,提示錯誤資訊:

IDENTITY_INSERT 設定為ON 或某個複製使用者向NOT FOR REPLICATION標識列中插入內容時,必須為表'login'中的標識列指定顯式值。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30776559/viewspace-2150276/,如需轉載,請註明出處,否則將追究法律責任。

相關文章