在 SQL Server 中使用 INNER JOIN 删除多个表
与 MySQL 不同,SQL Server 不支持使用以下语法从多个表中删除内连接。但是,还有其他方法可以实现相同的结果。
使用“已删除”伪表
考虑以下代码示例:
begin transaction; declare @deletedIds table ( id int ); delete from t1 output deleted.id into @deletedIds from table1 as t1 inner join table2 as t2 on t2.id = t1.id inner join table3 as t3 on t3.id = t2.id; delete from t2 from table2 as t2 inner join @deletedIds as d on d.id = t2.id; delete from t3 from table3 as t3 ... commit transaction;
此代码利用“deleted”伪表来存储第一个删除语句中删除的 ID。然后,这些 ID 将在后续删除语句中用于从其他表中删除相应的行。
其他注意事项
以上是如何使用 INNER JOIN 从 SQL Server 中的多个表中删除?的详细内容。更多信息请关注PHP中文网其他相关文章!