创建用于按顺序删除具有外键的表的脚本

时间:2014-05-04 18:02:04

标签: sql-server

我需要创建一个脚本(SQL Server 2012)来删除一个特定架构中的表,我不使用级联删除。我例如从sys.tables获取该特定模式的所有表。是否有任何方法来获取表格,以便我首先删除FK和主要之后?像级联删除但在脚本中。我知道我可以使用" nocheck约束所有"但我更喜欢直接这样做。 谢谢。

1 个答案:

答案 0 :(得分:0)

不可能遗憾。

您可以拥有一个FK循环,这样就不会有任何删除序列。

最简单的是一对表,每个表都引用另一个。

-- Pathological foreign keys
-- There is no order in which you can drop these tables
CREATE TABLE one(a INT PRIMARY KEY, b INT)
CREATE TABLE two(a INT PRIMARY KEY, b INT)
ALTER TABLE one ADD FOREIGN KEY (b) REFERENCES two(a)
ALTER TABLE two ADD FOREIGN KEY (b) REFERENCES one(a)