Увеличение переменной SQL Server по нескольким запросам SELECT - PullRequest
0 голосов
/ 10 октября 2019

Я хочу перехватить и увеличить переменную для нескольких операторов выбора:

DECLARE @count INT = 0;

SELECT parent = 0, id = @count++
INTO #tmp1
FROM ...

SELECT parent = id, id = @count++
INTO #tmp2
FROM ...

Очевидно, ROW_NUMBER() здесь не годится. Как мне этого добиться?

1 Ответ

4 голосов
/ 10 октября 2019

Я думаю, вы можете использовать переменные и row_number() для этого:

DECLARE @count INT = 0;

SELECT parent = 0, row_number() over (order by (select null)) as id
INTO #tmp1
FROM ...;

SET @count = @count + @@ROWCOUNT;

SELECT parent = id,
       (@count + row_number() over (order by (select null))) as id
INTO #tmp2
FROM ...;

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