之前没有使用动态参数,现在想搞成使用动态参数insert into @OrderTable select * from dbo.Order_Basicinfo as a where exists (select TID from @table as b where a.TID=b.TID);
select * from @OrderTable
select * from dbo.Promotion_Detail as a where exists (select id from @OrderTable as b where a.ID=b.OrderID);
现在想搞成这样子:declare @sql nvarchar(500);
set @sql='select * from @OrderTable select * from dbo.Promotion_Detail as a where exists (select id from '+@OrderTable+' as b where a.ID=b.OrderID);'
exec(@sql)报错说@OrderTable必须声明标量变量,问题是我在之前已经声明了
select * from @OrderTable
select * from dbo.Promotion_Detail as a where exists (select id from @OrderTable as b where a.ID=b.OrderID);
现在想搞成这样子:declare @sql nvarchar(500);
set @sql='select * from @OrderTable select * from dbo.Promotion_Detail as a where exists (select id from '+@OrderTable+' as b where a.ID=b.OrderID);'
exec(@sql)报错说@OrderTable必须声明标量变量,问题是我在之前已经声明了
declare @sql nvarchar(500);
set @sql='select * from '+@OrderTable+' select * from dbo.Promotion_Detail as a where exists (select id from '+@OrderTable+' as b where a.ID=b.OrderID);'
print(@sql)先print出来,如果是你想要的才把print改成exec
declare @sql nvarchar(500);
set @sql='select * from ' + @OrderTable + ' select * from dbo.Promotion_Detail as a where exists (select id from '+@OrderTable+' as b where a.ID=b.OrderID);'
exec(@sql)
declare @sql nvarchar(500);
set @sql='select * from '+@OrderTable+' select * from dbo.Promotion_Detail as a where exists (select id from '+@OrderTable+' as b where a.ID=b.OrderID);'
exec(@sql)
但你现在的情况适合不,不清楚,你的参数是表变量。