Exec ('select * into ##temptbl_'+cast(@UserID as varchar(4))+' from sales')
declare @userid int,@str nvarchar(20) set @userid=1 set @str='#temptbl_'+cast(@UserID as varchar(4)) Exec ('select * into '+@str+' from dbo.AA工序')
为什么用 Exec ('select * into '+@str+' from sales'); 或者select * from #temptbl_1取不到值.
请判断一下@UserId的数据类型 如果是数字,应该转化成字符才能连接的把
declare @userid int,@sql nvarchar(1000) select @userid=111 select @sql='select * into ##temptbl_'+convert(nvarchar(100),@UserID)+' from sales' exec sp_executesql @sql go select * from ##temptbl_111 兄弟,动态运行只可以创建全局的临时表
这样写: declare @userid int,@str nvarchar(20) set @userid=1 set @str='##temptbl_'+cast(@UserID as varchar(4)) Exec ('select * into '+@str+' from dbo.AA工序') Exec('select * into '+@str+' from sales')成功了!! 谢谢各位!!
保留 declare @userid int,@str nvarchar(20) set @userid=1 set @str='##temptbl_'+cast(@UserID as varchar(4)) Exec ('select * into '+@str+' from dbo.AA工序') Exec('select * into '+@str+' from sales')
set @userid=1
set @str='#temptbl_'+cast(@UserID as varchar(4))
Exec ('select * into '+@str+' from dbo.AA工序')
Exec ('select * into '+@str+' from sales'); 或者select * from #temptbl_1取不到值.
如果是数字,应该转化成字符才能连接的把
declare @userid int,@sql nvarchar(1000)
select @userid=111
select @sql='select * into ##temptbl_'+convert(nvarchar(100),@UserID)+' from sales'
exec sp_executesql @sql
go
select * from ##temptbl_111
兄弟,动态运行只可以创建全局的临时表
declare @userid int,@str nvarchar(20)
set @userid=1
set @str='##temptbl_'+cast(@UserID as varchar(4))
Exec ('select * into '+@str+' from dbo.AA工序')
Exec('select * into '+@str+' from sales')成功了!!
谢谢各位!!
declare @userid int,@str nvarchar(20)
set @userid=1
set @str='##temptbl_'+cast(@UserID as varchar(4))
Exec ('select * into '+@str+' from dbo.AA工序')
Exec('select * into '+@str+' from sales')