2015-06-30 96 views
2

如何更新我的標識列ID? 我收到 消息8102,級別16,狀態1,行1 無法更新標識列'Id'。更新標識列sql

當我嘗試更新ID

update [WarehouseReports].[Reports] 
    set Id=Id+1 
    where Id=20 
+0

你爲什麼要這樣做? –

+1

你可以試試這個:http://stackoverflow.com/q/3947453/2451726 – Arulkumar

回答

0

使用IDENTITY_INSERT

SET IDENTITY_INSERT [WarehouseReports].[Reports] ON 

update [WarehouseReports].[Reports] 
    set Id=21 
    where Id=20 

SET IDENTITY_INSERT [WarehouseReports].[Reports] OFF 

你當然可以只設置ID您行至21,而不是使用編號+ 1,因爲我已經在我的例子中完成。

IDENTITY_INSERT [table] ON命令關閉將值插入具有IDENTITY屬性的字段的限制。完成後,您應該始終將其返回OFF

+0

沒有工作消息195,級別15,狀態7,行1 'INDENTITY_INSERT'不是一個公認的SET選項。 Msg 195,Level 15,State 7,Line 7 'INDENTITY_INSERT'不是一個可識別的SET選項。 – user2171512

+1

錯字,請在兩個地方使用SET IDENTITY_INSERT – Arulkumar

+0

是的 - 只是一個錯字。現在試試 - 它應該是IDENTITY_INSERT而非INDENTITY。 –