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)