我只是想知道是否可以从两个不同的表中删除一条记录。
我想我需要一个查找语句,但我不确定从哪里开始。
在这两个表中,我都有一个名为 CardID 的字段。
在我的第一个表中,我有一条声明,
delete from Table1
where recordstatus = 2
and expiry <=(Select convert(varchar(8),today,112)
from(Select dateadd(year,-1,getdate())as today)aa)
然后我需要从表2中删除记录。
我们将不胜感激任何帮助
提前致谢。
最佳答案
DECLARE @deleted TABLE (CardID int);
delete from Table1
OUTPUT deleted.CardID INTO @deleted (CardID)
where recordstatus = 2
and expiry <=(Select convert(varchar(8),today,112)
from(Select dateadd(year,-1,getdate())as today)aa);
DELETE FROM Table2
FROM @deleted d
WHERE Table2.CardID = d.CardID;
从 Table1
中删除时,您还将删除的 CardID
值存储到表变量中(添加的 OUTPUT
子句)。然后使用该列表相应地从 Table2
中删除。
如果您总是需要从两个表中同步删除,我认为Table1
上的删除触发器更适合这里。
关于sql - 如何从两个表中删除一条记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5075826/