Значение временной таблицы в предложении where динамического SQL - PullRequest
0 голосов
/ 12 октября 2018

Необходимо знать, является ли приведенный ниже синтаксис правильным при использовании значения из временной таблицы, в которой предложение динамического SQL

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 

1 Ответ

0 голосов
/ 12 октября 2018

Просто сделайте это за один раз

   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

...