我有一个数据库,当我们从第三方导入数据时,该数据库用于在主要生产数据库之间传输数据。
我想在每个表中添加Identity
列。
我知道下面的SQL将对单个表执行操作,如何对数据库中的所有表执行此操作?
ALTER TABLE dbo.YourTable
ADD Id INT IDENTITY(1,1) NOT NULL
非常感谢
您必须一次在一张桌子上做-没有“魔术”的方式可以一次在所有桌子上做。
您可以使SQL Server通过检查sys.tables
目录视图来生成该操作所需的T-SQL语句-假设您要为所有表调用该标识列Id
:
SELECT
t.NAME,
'ALTER TABLE [' + SCHEMA_NAME(t.SCHEMA_ID) + '].[' + t.NAME +
'] ADD Id INT IDENTITY(1,1) NOT NULL'
FROM
sys.tables t
现在,复制并粘贴此语句的结果行,然后对您的数据库执行这些行-完成!! >>
U可以使用'sp_MSforeachtable'并将其添加到数据库中的每个表中只需运行以下查询: