我正在尝试构建一个将设置变量的查询。我该怎么做?
这是我到目前为止所拥有的
DECLARE @SQL as NVARCHAR(500)
DECLARE @ParmDefinition NVARCHAR(500)
set @SQL = 'set @maxRowCount = (select count(*) from Test)'
SET @ParmDefinition = N'@maxRowCount int';
EXECUTE sp_executesql @SQL, @ParmDefinition
当我运行时,我收到以下错误
Msg 8178,Level 16,State 1,Line 1
参数化查询'(@ maxRowCount int)设置@maxRowCount =(从docto中选择count(*)'需要参数' @ maxRowCount',这是未提供的。
我想将@maxRowCount
设置为Test
表的总行数
答案 0 :(得分:2)
这很有效,你需要输出' OUTPUT'在参数定义中以及结果所在的位置
DECLARE @SQL as NVARCHAR(500)
DECLARE @ParmDefinition NVARCHAR(500)
DECLARE @iRowCount INT
SET @SQL = 'set @maxRowCount = (select count(*) from Test)'
SET @ParmDefinition = N'@maxRowCount INT OUTPUT';
EXECUTE sp_executesql @SQL, @ParmDefinition, @maxRowCount = @iRowCount OUTPUT
PRINT 'rowcount is:' + CONVERT(VARCHAR,@iRowCount)