SQL存储过程错误

时间:2011-03-07 15:35:16

标签: sql stored-procedures

也许我没有正确获取SQL参数,但这对我不起作用。难道我做错了什么?当我尝试保存此存储过程时,我在关键字“AS”附近得到一个不正确的语法。

ALTER PROCEDURE MyProc
AS
DECLARE @CID int

DELETE FROM Contacts 
WHERE ContactID=@CID

RETURN

4 个答案:

答案 0 :(得分:3)

你应该试试这个 -

ALTER PROCEDURE MyProc
   @CID int
AS
BEGIN

DELETE FROM Contacts 
WHERE ContactID=@CID

RETURN 

END
GO

答案 1 :(得分:1)

您需要将其更改为:

ALTER PROCEDURE MyProc
    @CID int
AS

Begin

DELETE FROM Contacts 
WHERE ContactID=@CID

end

GO

答案 2 :(得分:1)

您缺少程序名称

ALTER PROCEDURE sp_YOURSPROC

编辑:

您有一个具有该名称的程序吗?如果不是,您可能需要CREATE而不是ALTER。但这会给你invalid object name错误。

@CID应该是一个参数吗?否则它似乎毫无用处。但即使是这种情况,那么你也不会得到任何错误,它也不会正确执行。

ALTER PROCEDURE MyProc
   @CID INT
AS
   DELETE FROM Contacts 
   WHERE ContactID=@CID

答案 3 :(得分:0)

您已在程序中声明了@CID 。它应该被声明为参数:

ALTER PROCEDURE MyProc

    @CID int -- it's a parameter

AS

   DELETE 
   FROM Contacts 
   WHERE ContactID = @CID

如果数据库中尚未存储procudure,则必须使用CREATE PROCEDURE

CREATE PROCEDURE MyProc

    @CID int -- it's a parameter

AS

   DELETE 
   FROM Contacts 
   WHERE ContactID = @CID