sql - 我需要删除一个我不知道名称的独特约束

标签 sql sql-server tsql constraints

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

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

最佳答案

此脚本将生成一个 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 版本。

关于sql - 我需要删除一个我不知道名称的独特约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3001103/

相关文章:

MySQL 一张4GB表或80张小表

mysql - 如何计算一组日期值中不同的月份名称?

sql - SQL中的父子记录关系?

sql - 查找所有要查看的引用文献

PHP 排名和更新所有数据库行

sql - 在单列中添加两种类型的类型转换

sql-server - SQL Server 2016 中的 SQL Server 配置管理器在哪里

sql - 如何在 SQL Server 中删除或截断表?

sql-server - 如何将超时参数传递给 SQL 数据库引擎

mysql - 如何将 800MB .sql 文件导入到 Windows/phpmyadmin 的 XAMPP