У меня есть таблица the_tbl
, в которой есть столбец SQL Statement
, с различными запросами SQL в каждой строке.
![the_tbl: table described here](https://i.stack.imgur.com/8fAUg.png)
******************************************************
Col1 || Col2 || SQL_Statement
******************************************************
A | 1 | SELECT * FROM the_tbl
B | 2 | SELECT Col 2 from the_tbl
C | 3 | SELECT * FROM the_tbl
******************************************************
Я использую курсор, чтобы перебирать каждую строку и печатать результаты каждого оператора.
DECLARE @execute_queries nvarchar(max)
DECLARE my_cur CURSOR FOR
SELECT the_tbl.SQL_Statement FROM the_tbl;
OPEN my_cur;
FETCH NEXT FROM my_cur INTO @execute_queries;
WHILE (@@FETCH_STATUS = 0)
BEGIN
EXECUTE(@execute_queries)
FETCH NEXT FROM my_cur INTO @execute_queries
END;
CLOSE my_cur
Я надеюсь выполнить курсор таким образом, чтобы, если SQL-запрос уже был выполнен, он не должен повторяться.
Например, если вы посмотрите на строки 1 и 3 the_tbl, запрос SELECT * FROM the_tbl
повторяется.Как я могу предотвратить это?Могу ли я использовать оператор If внутри курсора?чтобы он не повторял тот же самый запрос, который уже был выполнен?