Jer*_*old 2 sql database sql-server
我对SQL Server不太熟悉,但我正在开发一个脚本,该脚本在IDENTITY ON的表上显式设置值.由于一些计划不周的模式 - 看起来我将不得不明确地插入一些任意高的数字(例如10,000).
在未来的INSERTs(不是INDENTIY_INSERTS),它会被插入到10,001吗?还是最低的"免费"插槽?
例如 - 表目前有1-50行,我做的IDENTITY_INSERT是这样的
SET IDENTITY_INSERT [dbo].[ConditionPathways] ON
INSERT INTO [dbo].[ConditionPathways] ([ConditionPathwayID], [ConditionSegmentID], [WorkflowDefinitionID])
VALUES (10000, 10000, 10000)
SET IDENTITY_INSERT [dbo].[ConditionPathways] OFF
Run Code Online (Sandbox Code Playgroud)
将下一个"正常"插入,将其置于10001或51?我真的希望它51.
adr*_*nks 12
你以后打开IDENTITY_INSERT关闭,下一个可用的身份将是10001.
您可以使用DBCC CHECKIDENT重新设置标识字段,并RESEED选择将下一个标识设置回51.这样做的问题是,当表填充到最后一个插入项的标识为9999时,下一个项将导致重复的标识或错误,具体取决于您是否对标识列具有唯一约束.