向数据库Sql Server 2005中的所有表添加标识列

问题描述 投票:1回答:2

我有一个数据库,当我们从第三方导入数据时,该数据库用于在主要生产数据库之间传输数据。

我想在每个表中添加Identity列。

我知道下面的SQL将对单个表执行操作,如何对数据库中的所有表执行此操作?

ALTER TABLE dbo.YourTable
ADD Id INT IDENTITY(1,1) NOT NULL

非常感谢

sql-server-2005
2个回答
2
投票

您必须一次在一张桌子上做-没有“魔术”的方式可以一次在所有桌子上做。

您可以使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

现在,复制并粘贴此语句的结果行,然后对您的数据库执行这些行-完成!! >>


0
投票

U可以使用'sp_MSforeachtable'并将其添加到数据库中的每个表中只需运行以下查询:

© www.soinside.com 2019 - 2024. All rights reserved.