Dha*_*alR 0 trigger sql-server
以下是相关表格:
Table_B
B_ID(PK) Name A_Id
1 A 1
2 B 1
Table_C
C_ID B_Id(FK)
1 1
2 1
Run Code Online (Sandbox Code Playgroud)
现在我想Table_B
从它的子表中删除行Table_C
。以下是我正在触发的查询:
delete from Table_B where A_Id = 1
Run Code Online (Sandbox Code Playgroud)
我也想从其子项中删除所有行。可以用触发器吗?我在 上做了一个触发器Table_B
,但它只删除了一行;所以我必须运行一个循环。
谢谢。
我认为没有必要使用触发器。你可以使用两个DELETE
:
DELETE C
FROM Table_C C
INNER JOIN Table_B B
ON C.B_ID = B.B_ID
WHERE B.A_ID = 1;
DELETE FROM Table_B
WHERE A_Id = 1;
Run Code Online (Sandbox Code Playgroud)
如果要使用触发器,可以在里面使用这段代码:
DELETE C
FROM Table_C C
INNER JOIN DELETED B
ON C.B_ID = B.B_ID;
Run Code Online (Sandbox Code Playgroud)
请注意,请记住,如果该表中有外键,则可以对其进行配置ON DELETE CASCADE
(但要小心您的delete
s)
归档时间: |
|
查看次数: |
1094 次 |
最近记录: |