我有一个简单的脚本,它显示某个表的所有约束:
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/