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

动态脚本里用表变量报错,该怎么处理

2012-12-17 
动态脚本里用表变量报错declare @id nvarchar(10)12declare @sql1 nvarchar(2000)DECLARE @ProgramID

动态脚本里用表变量报错

declare @id nvarchar(10)='12'
declare @sql1 nvarchar(2000)='DECLARE @ProgramIDs  table([ProgramID] [int]) insert into @ProgramIDs select '+@id
exec (@sql1)
print @@rowcount --这个在下面要使用

declare @sql2 nvarchar(2000)='select ProgramID from @ProgramIDs'
exec (@sql2)


因为中间要用 @@rowcount 所以sql1和sql2不能拼在一起 
sql1 在我的应用里是个复杂的查询sql,就是想用表变量 将sql1的结果存起来,第二次使用就不用查询了 直接使用表变量

如果要改成下面这样就失去用表变量的意义了
declare @id nvarchar(10)='12'
declare @sql1 nvarchar(2000)=' select '+@id
exec (@sql1)
print @@rowcount --这个在下面要使用

declare @sql2 nvarchar(2000)='DECLARE @ProgramIDs  table([ProgramID] [int]) insert into @ProgramIDs  select '+@id+' select ProgramID from @ProgramIDs'
exec (@sql2)

[最优解释]
创建一个临时表 然后
insert into #tb exec(@sql1)
[其他解释]
变通下  @@rowcount 不就是变量表 @ProgramIDs的行数吗? 取出来
[其他解释]
咋办啊?

热点排行