过程或函数'Test'需要参数'@ID',这是未提供的

时间:2018-04-25 16:04:34

标签: sql sql-server stored-procedures

我是了解存储过程的新手。我正在处理类似的问题:

CREATE PROCEDURE [Test]
(
@ID int,
@month int,
@Low int,
@standard float = 0
)
AS
IF EXISTS (SELECT 1 FROM [Table1] WHERE ID = @ID AND 
month = @month AND TYPE = 'S' AND TYPEID = @Low)
BEGIN
UPDATE [Table1] SET 
    Add = @standard
    WHERE ID = @ID AND month = @month AND TYPE = 'S' AND TYPEID = @Low
END
ELSE
BEGIN
INSERT INTO [Table1] (ID, month, Add, TYPE, TYPEID) 
    VALUES (@ID, @month, @standard, 'S', @Low)
END
GO

从这张表开始:

ID     Month    Add    Type    TypeID
333    feb      0       T        111
333    feb      4       S        111
333    feb      -2      K        111

但是我收到了这个错误:

'程序或功能'测试'需要参数'@ID',这是未提供的。'

当我尝试执行程序时

有人可以告诉我这里有什么错误,我可以做些什么来修复它?我已经包含了ID,所以我不太确定为什么会出现错误。感谢

我这样称呼程序:

USE [DB1]
GO
DECLARE @return_value int
EXEC    @return_value = [Test]
SELECT  'Return Value' = @return_value
GO

1 个答案:

答案 0 :(得分:1)

执行此操作:在SQL Server Management Studio的“对象资源管理器”窗格中,右键单击存储过程并选择“脚本存储过程为 - >”,“执行到 - >”,然后选择“新查询编辑器”窗口”。这将为您构建一个SQL语句,以便在提供适当的参数值时正确执行存储过程。