我在数据库中共有109个表,现在我正在迁移到带有标识插入的amazon服务器,现在我想删除所有表的自动增量列规范。如何在SQL Server 2008中为所有表设置自动增量列,即标识规范为no。
例如
我有
CREATE TABLE dbo.tbl_acc
(
a1 NUMERIC (18) IDENTITY NOT NULL,
a2 NUMERIC (18) NULL,
a3 VARCHAR (4000) NULL,
a4 VARCHAR (3999) NULL,
CONSTRAINT PK_tbl_acc PRIMARY KEY (a1)
)
GO
现在我想删除IDENTITY。不仅仅是剩余的所有表格。
答案 0 :(得分:0)
设置IDENTITY
属性后,无法将其删除。您可以在SET IDENTITY_INSERT <table_name> ON/OFF
的会话中暂时停用它,但无法将其永久转换回numeric
列。
以下是我在类似情况下的表现:
numeric
列(让我们称之为a10
)并将其值设置为a1
a1
a10
重命名为a1
您可以构建一个动态SQL脚本来为所有表执行此操作。可以从INFORMATION_SCHEMA.TABLES
查询表格列表,它们来自INFORMATION_SCHEMA.TABLE_CONSTRAINTS
的约束。