即使我正在删除并尝试删除表,我也会收到错误,
ALTER TABLE [dbo].[Table1] DROP CONSTRAINT [FK_Table1_Table2]
GO
DROP TABLE [dbo].[Table1]
GO
Error
消息 3726,级别 16,状态 1,第 2 行无法删除对象“dbo.Table1”
因为它是由 FOREIGN KEY 约束引用的。
使用 SQL Server 2012
我使用 sql server 2012 生成了脚本,那么 SQL Server 是否给了我错误的脚本?
不确定我是否正确理解您想要执行的操作,很可能 Table1 在另一个表中被引用为 FK。
如果你这样做:
EXEC sp_fkeys 'Table1'
(这是取自如何列出引用 SQL Server 中给定表的所有外键? https://stackoverflow.com/questions/483193/how-can-i-list-all-foreign-keys-referencing-a-given-table-in-sql-server?rq=1)
这将为您提供“Table1”主键为 FK 的所有表。
删除表内存在的约束并不是删除表本身的必要步骤。删除引用“Table1”的每个可能的 FK。
至于你问题的第二部分,SQL Server自动脚本在很多方面都是盲目的。最有可能的是阻止您删除 Table1 的表被删除到下面或根本没有被脚本更改。 RedGate 有一些工具可以帮助进行级联删除(通常当您尝试删除一堆表时),但它不是万无一失的,而且相当昂贵。http://www.red-gate.com/products/sql-development/sql-toolbelt/ http://www.red-gate.com/products/sql-development/sql-toolbelt/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)