0

运行以下代码时,我不断收到错误消息:

无法截断表“条目”,因为它被 FOREIGN KEY 约束引用。

在此处输入图像描述

    --ALTER TABLE [dbo].[Entry] DROP CONSTRAINT [PK_Entry_Id] 
    ALTER TABLE [dbo].[Entry] DROP CONSTRAINT [DF_Entry_HideChrome]
    ALTER TABLE [dbo].[Entry] DROP CONSTRAINT [DF_Entry_IsDiscussionEnabled]
    ALTER TABLE [dbo].[Entry] DROP CONSTRAINT [DF_Entry_MetaDescription]
    ALTER TABLE [dbo].[Entry] DROP CONSTRAINT [DF_Entry_MetaTitle]

    Truncate table [Entry]

    ALTER TABLE [dbo].[Entry] ADD  CONSTRAINT [DF_Entry_HideChrome]  DEFAULT ((0)) FOR [HideChrome]
    GO

    ALTER TABLE [dbo].[Entry] ADD  CONSTRAINT [DF_Entry_IsDiscussionEnabled]  DEFAULT ((1)) FOR [IsDiscussionEnabled]
    GO

    ALTER TABLE [dbo].[Entry] ADD  CONSTRAINT [DF_Entry_MetaDescription]  DEFAULT ('') FOR [MetaDescription]
    GO

ALTER TABLE [dbo].[Entry] ADD  CONSTRAINT [DF_Entry_MetaTitle]  DEFAULT ('') FOR [MetaTitle]
GO

ALTER TABLE [dbo].[Entry] ADD  CONSTRAINT [DF_EntryStatus]  DEFAULT ('Public-Page') FOR [Status]
GO

好的,所以我从引用该表的任何表中删除了所有其他约束,但我仍然收到一个错误,说仍然有一个 PK 约束引用我的 Entry 表。

我去查看 Entry 上的依赖关系(查看依赖关系),发现注释表仍然依赖于它:

在此处输入图像描述

然后我看到有一个 FK 作为评论表的主要字段之一,但我猜你不能放弃。

因此,当 View Dependencies 说我在其他表上删除约束后剩下的唯一表来自 Comment 表时,我看不到还有哪些其他依赖项正在引用这个 Entry 表?我没看到。

4

2 回答 2

0

出于某种奇怪的原因,我不得不删除键 FK_Comment_Comment。不知道它与条目表有什么关系……很奇怪。

于 2013-01-18T06:57:22.790 回答
0

在删除您提供的约束的代码中,您没有删除DF_EntryStatus密钥。您只删除了这 4 个密钥。

ALTER TABLE [dbo].[Entry] DROP CONSTRAINT [DF_Entry_HideChrome]
ALTER TABLE [dbo].[Entry] DROP CONSTRAINT [DF_Entry_IsDiscussionEnabled]
ALTER TABLE [dbo].[Entry] DROP CONSTRAINT [DF_Entry_MetaDescription]
ALTER TABLE [dbo].[Entry] DROP CONSTRAINT [DF_Entry_MetaTitle]

由于这DF_EntryStatus仍然引用您无法截断表格。

希望这能解决我们的问题。

于 2013-01-18T06:18:52.370 回答