Sql server 是否使用临时表的列从主表中删除行?

Sql server 是否使用临时表的列从主表中删除行?,sql-server,tsql,sql-server-2008-r2,cursor,sql-delete,Sql Server,Tsql,Sql Server 2008 R2,Cursor,Sql Delete,我必须使用@flow从主表中删除##BeDel中的stackID #BeDel StackID 45 56 48 56 49 DECLARE @flow int @flow=(SELECT FLOWID FROM MainTable WHERE FLOWNAME='AAA') MainTable StackID VALUE FLOWID FLOWNAME 67 34 1 AAA 45 56 1

我必须使用@flow从主表中删除##BeDel中的stackID

#BeDel

StackID
45
56
48
56
49


DECLARE @flow int
@flow=(SELECT FLOWID FROM MainTable WHERE FLOWNAME='AAA')

MainTable

StackID   VALUE  FLOWID   FLOWNAME   
67         34     1          AAA
45         56     1          AAA
56         22     1          AAA
34         56     1          ZZZ
我已经使用过游标,但出于性能原因,我不想使用游标

我的光标代码是

DECLARE Rotation CURSOR 
FOR 
                  SELECT StackID FROM #BeDel
                   DECLARE  StackID INT

                   OPEN Rotation
                   FETCH NEXT FROM Rotation INTO @StackID
                   While @@FETCH_STATUS = 0
                   BEGIN
                   DELETE MainTable
                   WHERE StackID=@StackID AND FLOWID=@@flow

                   FETCH NEXT FROM Rotation INTO @StackID 

                   END
delete MainTable
from MainTable as m
where
    exists (select * from #BeDel as b where b.StackID = m.StackID) and
    m.FLOWNAME = 'AAA'