在测试中看到这一点 - 我的SQL经验与CRUD基本相关,我不确定这是什么意思,如果有的话?
CREATE PROCEDURE [dbo].[uspGetAccountID]
(
@AccountID int = 1
)
AS
SELECT @AccountID
GO
如果调用过程如下,那将是什么输出?为什么?
exec dbo.uspGetAccountID 5
答案 0 :(得分:4)
零不是代码的结果,而是return value
SSMS实际上生成了这个
USE [MyDB]
GO
DECLARE @return_value int
EXEC @return_value = [dbo].[uspGetAccountID]
@AccountID = 5
SELECT 'Return Value' = @return_value
GO
所以你有2个结果集。一个用于代码,一个用于返回代码
在RETURN 42
之后的过程中的代码中添加SELECT
,在第二个结果中得到42 ...
答案 1 :(得分:0)
答案 2 :(得分:0)
看起来像测试存储过程。它采用名为@AccountID
的参数,默认值为1
。
exec dbo.uspGetAccountID 5
会导致5
被选中。
答案 3 :(得分:0)
exec [dbo].[uspGetAccountID]
-- should result in 1
exec [dbo].[uspGetAccountID] 5
-- should result in 5