我维护一个产品,该产品已安装在多个位置,这些位置已随意升级。唯一的约束已添加到许多表中,但我不知道在任何特定实例中的名称是什么。我所知道的是具有唯一约束的表/列名对,我想编写一个脚本来删除这些列/表组合上的任何唯一约束。
这是SQL Server 2000及更高版本。最好在2000/2005/2008上运行!
该脚本将生成ALTER TABLE..... DROP CONSTRAINT....命令列表,然后您可以复制并粘贴并执行(或根据需要在执行之前进行调整)以删除所有唯一约束/唯一索引:
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版本上运行。