Назначить количество записей переменной из строковой команды - PullRequest
0 голосов
/ 15 октября 2019

У меня есть 2 nvarchar переменные, каждая из которых содержит команды.

  1. переменная
    DECLARE @ResourceClause AS nvarchar(MAX) = N'
    from CleneniPzs cp
переменная, которая вызывает 1. nvarchar
     DECLARE @Query AS nvarchar(MAX) = N'
     select * from (SELECT
       distinct cp.Id
     ' + @ResourceClause + N'
     ) as sq
     ORDER BY ' + STUFF((SELECT N', ' + cs.SortColumn + N' ' +  cs.OrderColumn FROM @ColumnSort cs FOR XML PATH('')), 1, 2, '') +
     IIF(@s IS NOT NULL, N' OFFSET ' + cast(@p * @s as nvarchar(255)) + N' ROWS FETCH NEXT ' + cast(@s as nvarchar(255)) + N' ROWS ONLY', N'')

Мне нужно назначить общее количество записей, которые возвращают 2.nvarchar для моей переменной @totalCount

что-то вроде этогоэто плохо)

select @totalCount = count(*) from @Query

Ответы [ 2 ]

0 голосов
/ 15 октября 2019

Похоже, вам нужно количество строк, которые будут возвращены при выполнении @Query. Для этого вы можете использовать @@ROWCOUNT:

EXEC sp_executesql @Query
SET @totalCount = @@ROWCOUNT
SELECT @totalCount
0 голосов
/ 15 октября 2019

Вы можете использовать временную таблицу и SP_executesql, что-то вроде следующего:

Create Table #Temp
(
    ColumnOne int,
    ColumnTwo Nvarchar(250),
    ColumnThree DateTime
)

DECLARE @Query AS nvarchar(MAX) = N'
    Insert into #Temp
     select 
         CoulmnOne,
         CoulmnTwo,
         CoulmnThree 
     from (SELECT
       distinct cp.Id
     ' + @ResourceClause + N'
     ) as sq
     ORDER BY ' + STUFF((SELECT N', ' + cs.SortColumn + N' ' +  cs.OrderColumn FROM @ColumnSort cs FOR XML PATH('')), 1, 2, '') +
     IIF(@s IS NOT NULL, N' OFFSET ' + cast(@p * @s as nvarchar(255)) + N' ROWS FETCH NEXT ' + cast(@s as nvarchar(255)) + N' ROWS ONLY', N'')

Exec (@Query)

select @totalCount = count(*) from #Temp

-- Do Something with @totalCount

Выше не было проверено, хотя

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...