中获得记录计数的吗
我正在构建一个查询,其中所选的列数是不固定的,因此我生成查询运行时并在存储过程中执行它。但我现在被卡住了,因为我想根据记录的数量从我的查询中执行一些操作,但我不知道如何从动态查询中获得记录的数量,因为我的查询就像一样
DECLARE @RowCount AS numeric(18,0)
DECLARE @SQL AS VARCHAR(MAX)
Set @SQL ='Select Count(*) From ((Select Col1,Col2,Col3,Col4 From Table1)) as rowcount'
Exec(@SQL)
Set @RowCount = ????..
你能告诉我我是如何从动态查询
除非WHERE子句中提供了某些条件,否则记录数的计数与SELECT列表中的列无关。
只做这个
DECLARE @SQL AS VARCHAR(MAX)
Set @SQL ='Select COUNT(*) From Table1'
Exec(@SQL)
因此,如果您想存储返回的行计数值,请使用表变量并插入
DECLARE @SQL AS VARCHAR(MAX)
DECLARE @rowCountTable TABLE(row_count INT)
Set @SQL ='Select COUNT(*) From Table1'
INSERT INTO @rowCountTable
Exec(@SQL)
SELECT * FROM @rowCountTable
您也可以使用OUTPUT变量检索值
DECLARE @retCount int
DECLARE @SQL AS NVARCHAR(MAX)
DECLARE @outPut NVARCHAR(50);
SET @SQL = N'Select @retvalOUT=COUNT(*) From Table1'
SET @outPut = N'@retvalOUT int OUTPUT';
EXEC sp_executesql @SQL, @outPut, @retvalOUT=@retCount OUTPUT;
SELECT @retCount;