要求传入一个全局临时表的表名 建立一个全局临时表 本人新手 大牛指教啊SQL 存储

解决方案 »

  1.   

    create proc p_x(@tn nvarchar(50),@newid varchar(64))
    as
    declare @sql nvarchar(4000)
    set @sql='create table ##'+@tn+replace(@newid,'-','_')
    set @sql=@sql+'(id int,a varchar(20),b nvarchar(20))'
    exec(@sql)
      

  2.   

     ##'+@tn+replace(@tn,'-','_')
    这个怎么理解
      

  3.   

    因为全局临时表在调用会话存在期间会一直存在,此时若其他人调用存储过程传入同一个表名那么该存储过程就会报错,所以我建议传入一个newid()作为随机名称,用来去除重复