gpt4 book ai didi

sql-server-2008 - 删除表中的所有约束

转载 作者:行者123 更新时间:2023-12-03 13:39:23 25 4
gpt4 key购买 nike

我正在尝试编写脚本来删除约束。

我有以下功能来选择数据库中的Constarints

SELECT  name
FROM sys.foreign_keys

我已经使用上述脚本编写了alter脚本
SELECT 
'ALTER TABLE ' + OBJECT_NAME(parent_object_id) +
' DROP CONSTRAINT ' + name
FROM sys.foreign_keys

使用上面的查询,我如何执行这些约束?

我可以使用 DROP DATABASE DBName。但是我只是想通过删除约束来删除表。

是否可以不使用SP?还是我可以继续进行的任何简单方法?

最佳答案

好了,您始终可以从底部 Pane 中复制输出,将其粘贴到顶部 Pane 中,然后按F5键。或者,您可以构建一个字符串以直接执行:

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

SELECT @sql += N'
ALTER TABLE ' + QUOTENAME(OBJECT_SCHEMA_NAME(parent_object_id))
+ '.' + QUOTENAME(OBJECT_NAME(parent_object_id)) +
' DROP CONSTRAINT ' + QUOTENAME(name) + ';'
FROM sys.foreign_keys;

PRINT @sql;
-- EXEC sp_executesql @sql;

(当您对 PRINT输出感到满意时,请将其注释掉并取消注释 EXEC。请注意,打印输出在Management Studio中将被截断为8K,但变量确实包含了整个命令。)

而且我也不知道这与您是否正在使用存储过程,或者为什么要尝试“不使用SP”的原因有什么关系……该查询可以作为存储过程运行,也可以作为存储过程运行。并非如此,这取决于您要调用它的频率,过程在何处等等。

关于sql-server-2008 - 删除表中的所有约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15785405/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com