如何循环select语句的结果并触发另一个查询?

时间:2014-02-12 23:31:51

标签: sql sql-server tsql foreach

对不起,如果我的头衔很糟糕,我无法弄清楚如何更好地说出来。

我有以下内容:

  select @AMTrackid = AudioMediaTrackId from AudioMediaTrack where AudioMediaId = @Aid

  delete from AudioMediaTrackArtist where AudioMediaTrackId = @AMTrackid

此时我想从AudioMediaTrackArtist中删除每个返回的@AMTrackid。

现在确定我该怎么做。

提前致谢!

2 个答案:

答案 0 :(得分:1)

delete from AudioMediaTrackArtist
where AudioMediaTrackId IN (
                            select AudioMediaTrackId 
                             from AudioMediaTrack 
                             where AudioMediaId = @Aid
                            )

答案 1 :(得分:0)

除了@ M.Ali回答之外,delete语句还有一个from部分,您可以使用任何表连接要删除的表。

因此您可以使用此方法删除单个删除语句中的记录

delete AudioMediaTrackArtist
    from AudioMediaTrackArtist join AudioMediaTrack 
        on AudioMediaTrackArtist.AudioMediaTrackId = AudioMediaTrack.AudioMediaTrackId
where AudioMediaTrack.AudioMediaId = @Aid