迪克,
你可以通过执行DBCC CheckIdent command
不幸的是很容易地改变标识列的下一个值,没有更新标识列值的简单方法。 对于现有的记录,我到现在为止所经历的是将所有数据复制到一个新的临时表中并在此辅助表上组织值。然后放下现有的表格。如下步骤将临时表重命名为原始表名。
如果试图删除列的标识属性中,SSMS如下
BEGIN TRANSACTION
SET QUOTED_IDENTIFIER ON
SET ARITHABORT ON
SET NUMERIC_ROUNDABORT OFF
SET CONCAT_NULL_YIELDS_NULL ON
SET ANSI_NULLS ON
SET ANSI_PADDING ON
SET ANSI_WARNINGS ON
COMMIT
BEGIN TRANSACTION
GO
CREATE TABLE dbo.Tmp_MyTable
(
id int NOT NULL,
value int NULL
) ON [PRIMARY]
GO
ALTER TABLE dbo.Tmp_MyTable SET (LOCK_ESCALATION = TABLE)
GO
IF EXISTS(SELECT * FROM dbo.MyTable)
EXEC('INSERT INTO dbo.Tmp_MyTable (id, value)
SELECT id, value FROM dbo.MyTable WITH (HOLDLOCK TABLOCKX)')
GO
DROP TABLE dbo.MyTable
GO
EXECUTE sp_rename N'dbo.Tmp_MyTable', N'MyTable', 'OBJECT'
GO
COMMIT
我知道这听起来不是一个简单的方法来更新标识列值生成一个脚本。
我认为你正在寻找'+'。 –
[修改主键](https://msdn.microsoft.com/en-us/library/ms189251.aspx) –
什么是[tag:sas]标签?这是偶然的,还是这实际上会进入SAS? – Joe