求助,高手过来看看。我在存储过程中需要创建一个临时表temp_xz03,为解决用户并发问题,我创建表的时候
如何加入用户名参数进去。比如:CREATE TABLE [dbo].[temp_xz03],用户名参数我该加在哪?

解决方案 »

  1.   

    你这个不是临时表,是实体表declare @user varchar(10),@sql varchar(1000)set @user='xz03'set @sql='create table temp_'+@user+'(id int)'exec(@sql)
      

  2.   


    如果表名是动态的,需要动态SQL语句.declare @username as varchar(10)
    set @username = 'xz03'exec('create table temp_' + @username + ' 字段的定义')
      

  3.   

    本地临时表的名称以单个数字符号 (#) 打头;它们仅对当前的用户连接是可见的;当用户从 SQL Server 实例断开连接时被删除。
      

  4.   

    直接用#建立临时表  ,仅对当前链接有效
    create table #temp(a int)
      

  5.   

    我这个临时表,算不上真正意义上的,其实是个实体表,只不过在存储过程最后会用DROP语句删除。但是碰到用户并发时,这条DROP语句无法执行,导致后面的用户无法继续使用。所以我想看看有什么办法在这个表上加上用户名参数。来解决并发问题。
      

  6.   


    /**
     *把实体表换成临时表,不要DROP语句,建的表结构相同可以用临时表的。
     */
      

  7.   

    CREATE TABLE #temp_xz03加个 # 就可以解决并发问题了
      

  8.   

    也要用动态语句。所以还不如用#temp形式的临时表。不会产生并发错误,下面也可以直接调用,不用动态语句1举2得