0

以下のコードを実行すると、エラーが発生し続けます。

FOREIGN KEY制約によって参照されているため、テーブル'Entry'を切り捨てることはできません。

ここに画像の説明を入力してください

    --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制約がまだあるというエラーがもう1つあります。

エントリへの依存関係(依存関係の表示)を確認すると、コメントテーブルがまだそれに依存していることがわかります。

ここに画像の説明を入力してください

次に、コメントテーブルのメインフィールドの1つとしてFKがあることがわかりますが、それを削除することはできません。

したがって、View Dependenciesが、他のテーブルに制約を削除した後に残っている唯一のテーブルがCommentテーブルからのものであると言っている場合、他のどの依存関係がこのEntryテーブルを参照しているのかわかりません。見えません。

4

2 に答える 2

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 に答える
0

奇妙な理由で、キー FK_Comment_Comment を削除する必要がありました。Entry テーブルとの関係はわかりませんが... 変です。

于 2013-01-18T06:57:22.790 に答える