Exec ('select * into #temptbl_'+@UserID+' from sales')

解决方案 »

  1.   

    Exec ('select * into ##temptbl_'+cast(@UserID as varchar(4))+' from sales')
      

  2.   

    declare @userid int,@str nvarchar(20)
    set @userid=1
    set @str='#temptbl_'+cast(@UserID as varchar(4))
    Exec ('select * into '+@str+' from dbo.AA工序')
      

  3.   

    为什么用
    Exec ('select * into '+@str+' from sales');     或者select * from #temptbl_1取不到值.
      

  4.   

    请判断一下@UserId的数据类型
    如果是数字,应该转化成字符才能连接的把
      

  5.   


    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
    兄弟,动态运行只可以创建全局的临时表
      

  6.   

    这样写:
    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')成功了!!
    谢谢各位!!
      

  7.   

    保留
    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')