Sui*_*eep 1 t-sql sql-server stored-procedures
Create PROCEDURE alertCount
(
@field1 VARCHAR(200),
@field2 INT,
@field3 INT,
@field4 INT,
@field5 INT,
@field6 INT,
@noOfCount INT OUT
)
AS
BEGIN
SELECT @noOfCount = COUNT(*) from tableA
END
Run Code Online (Sandbox Code Playgroud)
我对存储过程很新,基于一些教程,上面的代码帮助我创建一个过程(我希望它工作正常).
Declare @noOfCount as INT
Exec alertCount asd, 1, 1, 1, 1, 1, @noOfCount
select @noOfCount
Run Code Online (Sandbox Code Playgroud)
现在上面的代码假设返回9,因为我的tableA中有9行记录,但它返回了我null
.我可以知道它有什么问题吗?
P/S:请不要理会逻辑.我只是想了解一个非常简单的存储过程.谢谢.
你必须用out
(或output
关键字)传递参数
Declare @noOfCount as INT
Exec usp_AlertCount asd, 1, 1, 1, 1, 1, @noOfCount out
select @noOfCount
Run Code Online (Sandbox Code Playgroud)
从我的到期,通过名称传递参数(更容易维护)也更好:
declare @noOfCount int
exec usp_AlertCount
@field1 = 'asd',
@field2 = 1,
@field3 = 1,
@field4 = 1,
@field5 = 1,
@field6 = 1,
@noOfCount = @noOfCount output
select @noOfCount
Run Code Online (Sandbox Code Playgroud)