sql - 如何从两个表中删除一条记录?

标签 sql database

我只是想知道是否可以从两个不同的表中删除一条记录。

我想我需要一个查找语句,但我不确定从哪里开始。

在这两个表中,我都有一个名为 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/

相关文章:

MongoDB:如何将两个集合/数据库合并为一个?

asp.net - 划分 Linq to SQL 查询

python - Flask 应用程序从 mysql 连接拒绝访问

python - 如何有效地定义每日常量?

php - 对于我的目的来说,许多表是一种有效的数据库设计吗?

sql - 在 SQL Server 中更新从零到一和从一到零

MySQL:语法错误:意外的标识符

SQL - 在 A-F 之间查找名称的条件

c# - 参数化查询错误c#

SQL JOIN 问题(又一个)