sql - 放弃所有约束

标签 sql sql-server

我有一个简单的脚本,它显示某个表的所有约束:

SELECT *
FROM DB_NAME.INFORMATION_SCHEMA.CONSTRAINT_TABLE_USAGE
WHERE TABLE_SCHEMA = 'dbo' AND TABLE_NAME = 'TestTable'

如何删除 TestTable 中的所有约束并使用先前查询的选择(MS SQL Server 2012)?或者放弃限制是个坏方法?

我找到了一些解决方案,但我不明白他们从哪里获得有关约束的信息。

最佳答案

尝试使用如下脚本构建字符串:

DECLARE @sql NVARCHAR(MAX) = N'';

SELECT @sql += N'
ALTER TABLE ' + TABLE_NAME +
    ' DROP CONSTRAINT ' + CONSTRAINT_NAME + ';'
DB_NAME.INFORMATION_SCHEMA.CONSTRAINT_TABLE_USAGE
WHERE TABLE_SCHEMA = 'dbo' AND TABLE_NAME = 'TestTable';

EXEC sp_executesql @sql;

关于sql - 放弃所有约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32549906/

相关文章:

SQL - Like and greater than 函数

c# - 将大量数据从 txt、csv 文件插入到具有少量无效行的 SQL Server 表中

sql - 为什么这个动态 SQL 语句会失败?

java - Hibernate 中的 setText() 是什么?

sql - 如何按月份和业务区域只选择最终值?

sql-server - 检索同一个表中的两条记录并在一个查询中获取 datediff

sql-server - 如何在 SQL Server Management Studio 中获取 "admin rights"?

mysql - 一段时间后从数据库中删除表

sql - SUM 和按日期和 Material 分组

javascript - 在where子句中进行sequelize join来关联两个表