gpt4 book ai didi

sql - 无法删除对象 'dbo.Table1',因为它由 FOREIGN KEY 约束引用

转载 作者:行者123 更新时间:2023-12-02 10:30:35 25 4
gpt4 key购买 nike

即使我正在删除并尝试删除表,我也会收到错误,

ALTER TABLE [dbo].[Table1] DROP CONSTRAINT [FK_Table1_Table2]
GO

DROP TABLE [dbo].[Table1]
GO

错误

Msg 3726, Level 16, State 1, Line 2 Could not drop object 'dbo.Table1' because it is referenced by a FOREIGN KEY constraint.

使用 SQL Server 2012

我使用 sql server 2012 生成脚本,那么 SQL Server 是否给了我错误的脚本?

最佳答案

不确定我是否正确理解您想要执行的操作,很可能 Table1 在另一个表中被引用为 FK。

如果你这样做:

EXEC sp_fkeys 'Table1'

(取自 How can I list all foreign keys referencing a given table in SQL Server? )

这将为您提供“Table1”主键为 FK 的所有表。

删除表内存在的约束并不是删除表本身的必要步骤。删除引用“Table1”的每个可能的 FK。

关于你问题的第二部分,SQL Server自动脚本在很多方面都是盲目的。最有可能的是阻止您删除 Table1 的表被删除到下面或根本没有被脚本更改。 RedGate 有一些工具可以帮助进行级联删除(通常当您尝试删除一堆表时),但它不是万无一失的,而且相当昂贵。 http://www.red-gate.com/products/sql-development/sql-toolbelt/

关于sql - 无法删除对象 'dbo.Table1',因为它由 FOREIGN KEY 约束引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25267532/

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