我是了解存储过程的新手。我正在处理类似的问题:
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
答案 0 :(得分:1)
执行此操作:在SQL Server Management Studio的“对象资源管理器”窗格中,右键单击存储过程并选择“脚本存储过程为 - >”,“执行到 - >”,然后选择“新查询编辑器”窗口”。这将为您构建一个SQL语句,以便在提供适当的参数值时正确执行存储过程。