也许我没有正确获取SQL参数,但这对我不起作用。难道我做错了什么?当我尝试保存此存储过程时,我在关键字“AS”附近得到一个不正确的语法。
ALTER PROCEDURE MyProc
AS
DECLARE @CID int
DELETE FROM Contacts
WHERE ContactID=@CID
RETURN
答案 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