首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

动态参数-务须声明标量变量

2013-10-19 
动态参数--必须声明标量变量之前没有使用动态参数,现在想搞成使用动态参数insert into @OrderTable select

动态参数--必须声明标量变量
之前没有使用动态参数,现在想搞成使用动态参数


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必须声明标量变量,问题是我在之前已经声明了
[解决办法]
DECLARE @OrderTable NVARCHAR(128)='test'
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)

热点排行