![](/img/trans.png)
[英]Auto Increment Column value whenever update happen on that row in sql server
[英]How to specify a specific value for an auto increment column in SQL Server?
我在sql server中有一個自動增量標識列,但我想為其中一行指定一個特定的值。 所以號碼方案如下:
1 ...,
2....,
999 - for the reserved entry,
3....,
n....
我怎樣才能做到這一點?
您需要使用IDENTITY_INSERT
:
SET IDENTITY_INSERT MyTableName ON
INSERT INTO MyTableName
(IdField, <list of all the fields>)
VALUES
(999, <list of other values)
SET IDENTITY_INSERT MyTableName OFF
DBCC CHECKIDENT(MyTableName, RESEED, 2)
您還必須在INSERT
語句中使用顯式字段列表,並且每個會話僅限於一個活動IDENTITY_INSERT
。
如果種子值高於當前ID值,這也會將種子值重置為您插入的內容。
您也可以使用DBCC CHECKIDENT
來解決這個DBCC CHECKIDENT
但要管理它將是一件非常痛苦的事情。
您可以使用IDENTITY_INSERT :
SET IDENTITY_INSERT [tablename] ON;
INSERT INTO [tablename] (identitycolumn, ... ) VALUES (999, ...);
SET IDENTITY_INSERT [tablename] OFF;
不得不求助於此始終是代碼味道。 作為表填充或復制數據的數據加載實踐,它是可接受的。 對於“保留”ID的應用程序是一種不好的做法,並指出數據模型設計缺陷。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.