Alter表的批量SQL语句添加复合主键

时间:2019-01-18 01:17:08

标签: sql sql-server sql-server-2012 ddl

我正在使用SQL Server 2012,并且我有一个包含1000个表的数据库。我当前的表设计对每个表都有一个主键。现在,我的设计已更改为使用复合主键。如何使用批量alter语句添加复合主键?

例如:

alter table table_name 
    add primary key (col_name1, col_name2);

1 个答案:

答案 0 :(得分:0)

使用sp_MSforeachtable系统过程(未记录)遍历所有表:

EXEC sp_MSforeachtable @command1="alter table ? add primary key (col_name1, col_name2)"
GO

请确保您没有定义主键,以便可以平稳运行。可能要花一些时间!