运行下面的代码时我一直收到错误:
无法截断表'Entry',因为它正被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
好的,所以我从引用该表的任何表中删除了所有其他约束,但我仍然得到一个错误,说仍然存在引用我的Entry表的PK约束。
我去查看条目的依赖关系(查看依赖关系),看看评论表仍然依赖于它:
然后我看到有一个FK作为评论表的主要字段之一但你不能放弃我猜。
所以当View Dependencies表示我在其他表上删除约束后剩下的唯一表来自Comment表时,我没有看到其他依赖项引用此Entry表的内容?我没有看到它。
答案 0 :(得分: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
仍然引用您无法截断该表。
希望这能解决我们的问题。
答案 1 :(得分:0)
由于一些奇怪的原因,我不得不放弃密钥FK_Comment_Comment。不知道它与Entry表有什么关系......虽然很奇怪。