来看个简单存储过程 sq_executesql 的

ALTER PROCEDURE [dbo].[messageCountByWhere]
@where varchar(8000) = ' 1=1 ',
@recordCount int output
AS
 SET NOCOUNT ON
 declare @sqlCount nvarchar(4000)
 set @sqlCount= 'SELECT @Count=count(-1) FROM [dbo].[message] WHERE ' +@where
 --print @sqlCount
 exec sp_executesql @sqlCount,N'@Count int output',@recordCount output 
 RETURN @@Error

 

count(-1)有啥意思 ? 还有 exec 中  N'@Count int output',@recordCount output  表示什么意思 ,  希望给你解释

皈依舞
浏览 379回答 4
4回答

回首忆惘然

嗯,现在我知道count(-1)是什么了 它相当于 count(*)

Helenr

count(-1)表示和count(1)一样,统计行数,exec sp_executesql @sqlCount,N'@Count int output',@recordCount output表示:执行sp_executesql的存储过程,后面是参数,然后返回Count和recordCount
打开App,查看更多内容
随时随地看视频慕课网APP