Dynamic SQL 的 where 子句中的 Temp table 值
Temp table value in where clause of Dynamic SQL
在动态 SQL
的 where 子句中使用来自 temp table 的值时,需要知道以下语法是否正确
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
的范围内
在动态 SQL
的 where 子句中使用来自 temp table 的值时,需要知道以下语法是否正确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