我有以下表格設置。級聯在SQL Sever 2008中刪除不起作用
Bag
|
+-> BagID (Guid)
+-> BagNumber (Int)
BagCommentRelation
|
+-> BagID (Int)
+-> CommentID (Guid)
BagComment
|
+-> CommentID (Guid)
+-> Text (varchar(200))
BagCommentRelation有袋子和BagComment的外鍵。
所以,我打開了這兩個外鍵的級聯刪除,但是當我刪除一個包時,它不會刪除評論行。
是否需要爲此觸發一個觸發器?或者我錯過了什麼?
(我使用SQL Server 2008)
注:發帖請求的SQL。這是BagCommentRelation表格的定義。 (我有bagID錯誤的(我認爲這是一個GUID,但它是一個int)的類型。)
CREATE TABLE [dbo].[Bag_CommentRelation](
[Id] [int] IDENTITY(1,1) NOT NULL,
[BagId] [int] NOT NULL,
[Sequence] [int] NOT NULL,
[CommentId] [int] NOT NULL,
CONSTRAINT [PK_Bag_CommentRelation] PRIMARY KEY CLUSTERED
(
[BagId] ASC,
[Sequence] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[Bag_CommentRelation] WITH CHECK ADD CONSTRAINT [FK_Bag_CommentRelation_Bag] FOREIGN KEY([BagId])
REFERENCES [dbo].[Bag] ([Id])
ON DELETE CASCADE
GO
ALTER TABLE [dbo].[Bag_CommentRelation] CHECK CONSTRAINT [FK_Bag_CommentRelation_Bag]
GO
ALTER TABLE [dbo].[Bag_CommentRelation] WITH CHECK ADD CONSTRAINT [FK_Bag_CommentRelation_Comment] FOREIGN KEY([CommentId])
REFERENCES [dbo].[Comment] ([CommentId])
ON DELETE CASCADE
GO
ALTER TABLE [dbo].[Bag_CommentRelation] CHECK CONSTRAINT [FK_Bag_CommentRelation_Comment]
GO
這個表中的行刪除,但在意見表中的行不。
我們的評論表有很多不同類型的評論。有些桌子使用Guids,PK有些整數。另外,一個包可能有很多評論。 聽起來像我需要選擇guid或ints,並有FK直接從我的袋子表中。 – Vaccano 2010-03-18 15:49:18