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