这是我在sql 2005里写的一个存储过程
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
ALTER PROCEDURE [dbo].[Proc_usertestStateModify]
(@UserID [VarChar],
 @PaperID  [Int],
     @state  [VarChar]       )AS UPDATE [OnLineExam].[dbo].[usertest] SET     [state] = @stateWHERE 
( [UserID]  = @UserID and [PaperID]=@PaperID )点执行时,报错
消息 208,级别 16,状态 6,过程 Proc_usertestStateModify,第 8 行
对象名  'dbo.Proc_usertestStateModify' 无效。
大家帮帮忙,如何解决这个问题呢?

解决方案 »

  1.   

    set ANSI_NULLS ON 
    set QUOTED_IDENTIFIER ON 
    go 
    CREATE PROCEDURE [dbo].[Proc_usertestStateModify] 
    (@UserID [VarChar], 
    @PaperID [Int], 
        @state  [VarChar]      ) AS UPDATE [OnLineExam].[dbo].[usertest] SET    [state] = @state WHERE 
    ( [UserID] = @UserID and [PaperID]=@PaperID ) GO
    既然不存在,就不要修改的,应该创建
      

  2.   

    create PROCEDURE [dbo].[Proc_usertestStateModify]
    (@UserID [VarChar],
    @PaperID [Int],
        @state  [VarChar]      )AS UPDATE [OnLineExam].[dbo].[usertest]SET    [state] = @stateWHERE
    ( [UserID] = @UserID and [PaperID]=@PaperID ) 
    go
    alter 改為create
      

  3.   

    ALTER PROCEDURE [dbo].[Proc_usertestStateModify] --改成
    create PROCEDURE [dbo].[Proc_usertestStateModify]
      

  4.   


    原来如此,我没学过sql,有时间好好看看。