Sql server 理解SQL SErver存储过程

Sql server 理解SQL SErver存储过程,sql-server,tsql,stored-procedures,Sql Server,Tsql,Stored Procedures,我对存储过程非常陌生,基于一些教程,上面的代码帮助我创建了一个过程(我希望它可以正常工作) 现在,上面的代码假设返回我9,因为我的表A中有9行记录,但它返回我null。我能知道有什么问题吗 p/S:请不要担心逻辑。我只是想理解一个非常简单的存储过程。谢谢。您必须使用out(或output关键字)传递参数 从我的Expirence来看,按名称传递参数也更好(更易于维护): 您必须用输出(或输出关键字)传递参数 从我的Expirence来看,按名称传递参数也更好(更易于维护): Create P

我对存储过程非常陌生,基于一些教程,上面的代码帮助我创建了一个过程(我希望它可以正常工作)

现在,上面的代码假设返回我9,因为我的表A中有9行记录,但它返回我
null
。我能知道有什么问题吗


p/S:请不要担心逻辑。我只是想理解一个非常简单的存储过程。谢谢。

您必须使用
out
(或
output
关键字)传递参数

从我的Expirence来看,按名称传递参数也更好(更易于维护):


您必须用
输出
(或
输出
关键字)传递参数

从我的Expirence来看,按名称传递参数也更好(更易于维护):

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
Declare @noOfCount as INT
Exec alertCount asd, 1, 1, 1, 1, 1, @noOfCount
select @noOfCount
Declare @noOfCount as INT
Exec usp_AlertCount asd, 1, 1, 1, 1, 1, @noOfCount out
select @noOfCount
declare @noOfCount int

exec usp_AlertCount
    @field1 = 'asd',
    @field2 = 1,
    @field3 = 1,
    @field4 = 1,
    @field5 = 1,
    @field6 = 1, 
    @noOfCount = @noOfCount output

select @noOfCount