小编典典

我需要删除一个我不知道其名称的唯一约束

sql

我维护一个产品,该产品已安装在多个位置,这些位置已随意升级。唯一的约束已添加到许多表中,但我不知道在任何特定实例中的名称是什么。我所知道的是具有唯一约束的表/列名对,我想编写一个脚本来删除这些列/表组合上的任何唯一约束。

这是SQL Server 2000及更高版本。最好在2000/2005/2008上运行!


阅读 214

收藏
2021-04-22

共1个答案

小编典典

该脚本将生成ALTER TABLE..... DROP CONSTRAINT....命令列表,然后您可以复制并粘贴并执行(或根据需要在执行之前进行调整)以删除所有唯一约束/唯一索引:

SELECT 
    'ALTER TABLE ' + OBJECT_NAME(so.parent_obj) + ' DROP CONSTRAINT ' + so.name
FROM sysobjects so
WHERE so.xtype = 'UQ'

我希望它可以在2000到2008 R2的所有SQL Server版本上运行。

2021-04-22