set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
goALTER PROCEDURE [dbo].[Session] 
    @username varchar(50) ,@i_result INT OUTPUT
AS
BEGIN 
    DECLARE @v_sql varchar(200)
    if object_id('tempdb.dbo.##user'+ @username) is null
          begin
             set @v_sql = 'create table ##user'+@username +'(username varchar(100))'
             exec(@v_sql)
             set @i_result = 0
          end
    else
             set @i_result = 1
END错误提示
消息 208,级别 16,状态 6,过程 Session,第 14 行
对象名  'dbo.Session' 无效。

解决方案 »

  1.   

    set ANSI_NULLS ON 
    set QUOTED_IDENTIFIER ON 
    go ALTER PROCEDURE [dbo].[Session] 
        @username varchar(50) ,@i_result INT OUTPUT 
    AS 
    BEGIN 
        DECLARE @v_sql varchar(200) 
        if object_id('tempdb..##user'+ @username) is null 
              begin 
                set @v_sql = 'create table ##user'+@username +'(username varchar(100))' 
                exec(@v_sql) 
                set @i_result = 0 
              end 
        else 
                set @i_result = 1 
    END 这样试下
      

  2.   

    set ANSI_NULLS ON 
    set QUOTED_IDENTIFIER ON 
    go CREATE PROCEDURE [dbo].[Session] --这里要先创建吧
        @username varchar(50) ,@i_result INT OUTPUT 
    AS 
    BEGIN 
        DECLARE @v_sql varchar(200) 
        if object_id('tempdb..##user'+ @username) is null 
              begin 
                set @v_sql = 'create table ##user'+@username +'(username varchar(100))' 
                exec(@v_sql) 
                set @i_result = 0 
              end 
        else 
                set @i_result = 1 
    END 好像提示过程名不存在.
      

  3.   

    存储过程要先创建,才能修改。set ANSI_NULLS ON 
    set QUOTED_IDENTIFIER ON 
    go alter PROCEDURE [dbo].[Session] 
        @username varchar(50) ,@i_result INT OUTPUT 
    AS 
    BEGIN 
        DECLARE @v_sql varchar(200) 
        if object_id('tempdb.dbo.##user'+ @username) is null 
              begin 
                set @v_sql = 'create table ##user'+@username +'(username varchar(100))' 
                exec(@v_sql) 
                set @i_result = 0 
              end 
        else 
                set @i_result = 1 
    END 
    ----------------------
    命令已成功完成。
      

  4.   

    create PROCEDURE [dbo].[Session] 
        @username varchar(50) ,@i_result INT OUTPUT 
    AS 
    BEGIN 
        DECLARE @v_sql varchar(200) 
        if object_id('tempdb..##user'+ @username) is null 
              begin 
                set @v_sql = 'create table ##user'+@username +'(username varchar(100))' 
                exec(@v_sql) 
                set @i_result = 0 
              end 
        else 
                set @i_result = 1 
    END declare @i int
    exec [dbo].[Session] 'tony',@i output
    select @i
    --第一次显示 0 第二次显示 1 
    --测试成功
      

  5.   

    set ANSI_NULLS ON 
    set QUOTED_IDENTIFIER ON 
    go ALTER PROCEDURE [dbo].[Session] -------这里的ALTER  改为CREATE
        @username varchar(50) ,@i_result INT OUTPUT 
    AS 
    BEGIN 
        DECLARE @v_sql varchar(200) 
        if object_id('tempdb.dbo.##user'+ @username) is null 
              begin 
                set @v_sql = 'create table ##user'+@username +'(username varchar(100))' 
                exec(@v_sql) 
                set @i_result = 0 
              end 
        else 
                set @i_result = 1 
    END