这是我的 SQL 代码
CREATE PROC sp_procedure
(@Name VARCHAR(50),
@Stock numeric)
AS
DECLARE @Code CHAR(4)
BEGIN
UPDATE tbProcedure
SET Name = @Name, Stock = @Stock
WHERE Code = @Code
SELECT * FROM tbProcedure
END
然后我像这样执行代码
EXEC sp_procedure 'Name',15,2
然后我得到错误结果说指定的参数太多。
我也试过这个
EXEC sp_procedure 'Name',15
它不会返回错误,但会影响 0 行。
我想在执行存储过程时分配 @Code
值,甚至可以这样做吗?
编辑:
抱歉,它实际上是 CHAR(4)
,而不是 INT
再次抱歉,我只是复制粘贴所有代码,没有先看它,上面是实际代码,非常抱歉造成混淆……
原文由 Ein Hazard 发布,翻译遵循 CC BY-SA 4.0 许可协议
我得出的结论是,如果其中一个分支不使用所有参数,就不可能合并分支存储过程。
正因为如此,我编写了 2 个存储过程,下面是我的完整代码:
对于插入过程:[这是使用变量的过程]
对于更新、删除和显示过程:
并使用这样的程序:
结果:
分支 1 [更新]
结果:
分支 2 [删除]
分公司 3 [显示]