Sql 过程没有参数,并且提供了参数。虽然我提供了

Sql 过程没有参数,并且提供了参数。虽然我提供了,sql,sql-server-2008,Sql,Sql Server 2008,我创建了一个存储过程并传递参数@ID: CREATE PROCEDURE GetEmployeeID AS DECLARE @ID NUMERIC (10) SET @ID = @ID BEGIN SELECT * FROM [Employees] WHERE EmployeeID = @ID END 这样执行: EXEC GetEmployeeID 8; 但我得到了这个错误: Msg 8146,16级,状态2,程序GetEmployeeID,

我创建了一个存储过程并传递参数
@ID

CREATE PROCEDURE GetEmployeeID
AS
    DECLARE @ID NUMERIC (10) 
    SET @ID = @ID
BEGIN
    SELECT * 
    FROM [Employees] 
    WHERE EmployeeID = @ID
END
这样执行:

EXEC  GetEmployeeID 8;
但我得到了这个错误:

Msg 8146,16级,状态2,程序GetEmployeeID,第0行程序
GetEmployeeID没有参数,并且提供了参数


存储过程没有任何输入参数<代码>ID是局部变量,在外部不可见。你应使用:

CREATE PROCEDURE GetEmployeeID 
     @ID NUMERIC(10)
AS
BEGIN
    SELECT * 
    FROM [Employees] 
    WHERE EmployeeID = @ID;
END;

EXEC GetEmployeeID @ID = 8;