SQL: оператор My With не работает внутри цикла while - PullRequest
0 голосов
/ 05 марта 2019

Я довольно новичок в SQL-запросах. У меня есть оператор with внутри хранимой процедуры, и после него у меня есть цикл while, затем внутри цикла while я выбираю оператор with, чтобы показать его.

, но он говорит

недопустимый объект.

мой код

DECLARE @i INT
SET @i=0
BEGIN
WITH t1 AS (
SELECT * FROM Dams)
WHILE @i<3
BEGIN
Select * from t1
SET @i = @i+1
END
END

Ответы [ 2 ]

0 голосов
/ 05 марта 2019

Для этого вам не нужен цикл while.

На самом деле вы можете просто сделать:

select d.*
from dams d cross join
     (values (0), (1), (2)) v(i);
0 голосов
/ 05 марта 2019

Вы должны написать запрос на выборку после общего табличного выражения:

DECLARE @i INT
SET @i=0
BEGIN
    WHILE @i<3
    BEGIN
        WITH t1 AS (
        SELECT * FROM Dams)    
        Select * from t1

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