我已经用这个模式定义了表:
CREATE TABLE [dbo].[Codings]
(
[Id] [int] IDENTITY(1,1) NOT NULL,
[ParentId] [int] NULL,
[CodeId] [int] NOT NULL,
[Title] [nvarchar](50) COLLATE Arabic_CI_AI NOT NULL,
CONSTRAINT [PK_Codings]
PRIMARY KEY CLUSTERED ([Id] ASC) WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
并用这样的数据填充它:
Id ParentId CodeId Title
----------- ----------- ----------- ----------
1 NULL 0 Gender
2 1 1 Male
3 1 2 Female
4 NULL 0 Educational Level
5 4 1 BS
6 4 2 MS
7 4 3 PHD
现在我正在寻找一个解决方案,按顺序,当我删除作为父项的记录(如 Id = 1 或 4)时,它会自动删除所有子项(所有具有 ParentId = 1 或 4 的记录)。
我想我可以通过 Id 和 Parent Id 之间的关系来做到这一点(并为删除规则设置级联),但是当我在 MMS 中这样做时,属性中的删除规则或更新规则被禁用。
我的问题是:我该怎么做才能做到这一点?
谢谢
编辑:
当我写(如 Id = 1 或 4)时,我指的是父记录,而不是子记录,我不是指像 Id = 1 或 4 这样的查询
一些朋友暗示我可以通过删除触发器来做到这一点,但我想我可以通过关系来做到这一点