sql-server – 如何从所有表中删除所有约束?
发布时间:2020-12-24 15:31:55 所属栏目:MsSql教程 来源:网络整理
导读:我想删除SQL Server数据库中所有表的所有默认约束,检查约束,唯一约束,主键和外键.我知道如何从sys.objects中获取所有约束名称,但是如何填充ALTER TABLE部分? 解决方法 您可以通过将sys.tables.object_id = sys.objects.parent_object_id加入这些对象类型来轻
|
我想删除SQL Server数据库中所有表的所有默认约束,检查约束,唯一约束,主键和外键.我知道如何从sys.objects中获取所有约束名称,但是如何填充ALTER TABLE部分? 解决方法您可以通过将sys.tables.object_id = sys.objects.parent_object_id加入这些对象类型来轻松地获取此信息.DECLARE @sql NVARCHAR(MAX);
SET @sql = N'';
SELECT @sql = @sql + N'
ALTER TABLE ' + QUOTENAME(s.name) + N'.'
+ QUOTENAME(t.name) + N' DROP CONSTRAINT '
+ QUOTENAME(c.name) + ';'
FROM sys.objects AS c
INNER JOIN sys.tables AS t
ON c.parent_object_id = t.[object_id]
INNER JOIN sys.schemas AS s
ON t.[schema_id] = s.[schema_id]
WHERE c.[type] IN ('D','C','F','PK','UQ')
ORDER BY c.[type];
PRINT @sql;
--EXEC sys.sp_executesql @sql;
PRINT只是用于眼球 – 如果你有很多约束,它可能不会显示整个脚本,因为它限制在8K.在这些情况下,请参阅this tip以了解在运行之前验证脚本的其他方法. 一旦您对输出感到满意,请取消注释EXEC. (编辑:鞍山站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- sql – 如何只保留一行表,删除重复的行?
- XHTML标签的自关闭的写法应该注意的问题
- sql-server – 跟踪SQL Server最新累积更新的标准方法是什么
- sql-server – 我是否在unicode的“insert into”语句中使用
- 清华紫光全线促销带动“宽仕”狂降2000元
- 微软与万维网联盟结成“战友” 反对Eolas专利
- sql-server – 如何阻止SQL Server将信息行记录到SQLFT日志
- 加密 – 如何在命令行上解密加密的sqlcipher数据库文件?
- HTML实现移动端固定悬浮半透明搜索框
- sql-server – Microsoft DPM,警报表中的类型值是什么(SQL后
