2014-10-09 3 views
0

Почему я не могу это сделать:Удаление строк, где ID в #tempTable

declare @myTempTableList TABLE (
CommId int 
) 
insert into @myTempTableList (CommId) 
VALUES 
(742), (803) 

delete from myRealTable where MyRealTableId in (
    select mrt.MyRealTableId from MyRealTable mrt 
    where commId in (@myTempTableList) 
) 

Это говорит мне, что я должен объявить скалярную переменную @myTempTableList

ответ

1
delete from myRealTable where MyRealTableId in (
    select mrt.MyRealTableId from MyRealTable mrt 
    where commId in (SELECT CommId FROM @myTempTableList) 
) 

Попробуйте выше

1
DELETE FROM myRealTable 
WHERE EXISTS (SELECT 1 
       FROM @myTempTableList 
       WHERE myRealTable.MyRealTableId = @myTempTableList.CommId) 
Смежные вопросы