declare @tb table(col int)
declare @sql varchar(1000)
insert @tb select 1
union all
select 2set @sql = 'select * from @tb'
exec(@sql)
为什么这样错误为消息 137,级别 15,状态 2,第 11 行
必须声明标量变量 "@tb"。不明白 这样构造sql的原理
declare @sql varchar(1000)
insert @tb select 1
union all
select 2set @sql = 'select * from @tb'
exec(@sql)
为什么这样错误为消息 137,级别 15,状态 2,第 11 行
必须声明标量变量 "@tb"。不明白 这样构造sql的原理
insert @tb select 1
union all
select 2set @sql = 'select * from '+@tb
exec(@sql)
declare @sql varchar(1000)
insert @tb select 1
union all
select 2select * from @tb直接这样就行了,动态的话,要全动态声明@TB
declare @sql varchar(1000)
insert @tb select 1
union all
select 2select * from @tb直接这样,要不然全动态声明@TB
declare @sql varchar(1000)set @sql = '
declare @tb table(col int)
insert @tb select 1
union all
select 2
select * from @tb'
exec(@sql)
/*
col
-----------
1
2(2 行受影响)
*/
declare @sql varchar(1000)
insert @tb select 1
union all
select 2set @sql = 'select * from ' +@tb+ ''
exec(@sql)
declare @sql varchar(1000)
insert #t select 1
union all
select 2set @sql = 'select * from #t'
exec(@sql)
/*
col
-----------
1
2(2 行受影响)
*/drop table #t
declare @sql varchar(1000)
insert @tb select 1
union all
select 2select * from @tb