动态 SQL 的 where 子句中的临时表值



需要知道在动态SQL的where子句中使用temp表中的值时,下面的语法是否正确

DECLARE @sqlQ nvarchar(1000);
if OBJECT_ID('tempdb..#Tem') is not null BEGIN DROP tABLE #Tem END
create table #Tem
(order nvarchar(10))
insert into #Tem
Select orderID from customerdetails where  OrderID >100

SET @sqlQ = N'UPDATE FINALTable SET Highvalcusomer=1 where 
orderno=#Tem.order'
EXEC @sqlQ 

一气呵

UPDATE 
FINALTable 
SET 
Highvalcusomer=1 
where 
orderno IN (Select orderID from customerdetails where  OrderID >100)

或者,如果您真的想使用动态 SQL

SET @sqlQ = N'UPDATE FINALTable SET Highvalcusomer=1 where 
orderno IN (Select orderID from #Tem)'
EXEC (@sqlQ )

#Tem将在动态 SQL 的范围内

最新更新