在存储过程里 表名是个变量
因为创建的是临时表用于查询,担心很多人同时查询 导致创建表名重复 所以使用字符串+随机数 作为临时表表名 SET @RAND = FLOOR(RAND()*1000) --获取随机数
SET @TABLENAME = '#TEMP_HFMXZ'+@RAND
--创建临时表
CREATE TABLE @TABLENAME
          (
              ....
           )
此时提示"@TABLENAME附近有语法错误 应为ID,quoted_id 或‘’"
请指教

解决方案 »

  1.   

    exec('CREATE TABLE '+@TABLENAME+'(...)'
    )
      

  2.   

    這樣只能用動態,所有語句都放在字符串里SET @RAND = FLOOR(RAND()*1000) --获取随机数
        SET @TABLENAME = '#TEMP_HFMXZ'+@RAND
        --创建临时表
        EXEC('CREATE TABLE '+@TABLENAME+'
              (
                  ....
               )'
      

  3.   

    SET @RAND = FLOOR(RAND()*1000) --获取随机数
        SET @TABLENAME = '#TEMP_HFMXZ'+ltrim(@RAND)
        --创建临时表
     exec('   CREATE TABLE '+@TABLENAME+'
              (
                  ....
               )
    ')