不知道道为什么调用时总会报值错误  例如@username='#ff',就报#ff附近的语句错误.
哪位高手能帮帮小弟..
先谢了..

解决方案 »

  1.   

    else
      begin
       set @result=1
       set @sql_str = 'CREATE TABLE ' + @username
       exec(@sql_str)
      end这段有问题
      

  2.   

    'CREATE TABLE ' + @username
    你创建的表没有字段,语法有错误,加上字段就行了。
      

  3.   

    同意楼上:
    CREATE PROCEDURE dt_login
    @username varchar(100),
    @result integer output
    AS
    begin
    declare @sql_str varchar(1000)
    if left(@username,len( @username )) in (select left(name,len( @username )) from sysobjects) 
     begin
        set @result=0
     end
    else
      begin
       set @result=1
       set @sql_str = 'CREATE TABLE ' + @username+'(field1 char(20),field2 int)'
       exec(@sql_str)
      end
    end
    GOexec dt_login '#table1',0
    运行结果:
    The command(s) completed successfully.
      

  4.   

    'CREATE TABLE ' + @username
    你创建的表没有字段,语法有错误,加上字段就行了。
      

  5.   

    另外,在存储过程的最后,还应加上
    Return @result        语句,供前台判断使用
      

  6.   

    此处语句不完整:
    set @sql_str = 'CREATE TABLE ' + @username
    缺少字段名。
      

  7.   

    'CREATE TABLE ' + @username
    你创建的表没有字段,语法有错误,加上字段就行了。
      

  8.   

    不知道为什么表没有创建成功.... 
       我在sysobjects表中找不到新创建的临时表的名称..
      

  9.   

    临时表当然找不到啦
    只有一个#的是局部临时表,只在创建它的过程中有效,这个过程结束,它也会被自动删除.而且,临时表的属性也不是保存在当前数据库的sysobjects中,是保存在tempdb这个数据库的sysobjects中
    并且其表名为:临时表名+系统随机分配的编号
      

  10.   

    非常之感谢...   
       改成全局临时表就行了..
         我是用delphi来调这个的..
             现在给大家加分