Я хочу вставить в одну таблицу из другой таблицы с помощью CTE. Я попытался поставить точку с запятой до with
, но она не работает.Вставить запрос с помощью CTE в SQL Server
Это мой запрос:
INSERT INTO [autoFIE2].[dbo].[tbl_article_type_parent_child] ([art_typ_parent_index], [art_typ_child_index])
WITH article_type_list AS
(
SELECT
art_typ_child_index, art_typ_parent_index
FROM
[autoFIE2].[dbo].[tbl_article_type_parent_child]
WHERE
art_typ_parent_index IS NULL
UNION ALL
SELECT
a.art_typ_child_index, a.art_typ_parent_index
FROM
[autoFIE2].[dbo].[tbl_article_type_parent_child] A
INNER JOIN
article_type_list as AL ON a.art_typ_parent_index = al.art_typ_child_index
WHERE
a.art_typ_parent_index IS NOT NULL)
SELECT *
FROM article_type_list;
Ошибка при выполнении этого договора: -
Msg 156, Level 15, State 1, Line 4
Неправильный синтаксис около ключевого слова 'с' ,Msg 319, Level 15, State 1, Line 4
Неверный синтаксис рядом с ключевым словом 'with'. Если этот оператор является общим табличным выражением, предложение xmlnamespaces или контекстное предложение отслеживания изменений , предыдущий оператор должен быть прерван точкой с запятой .
Что нужно сделать, чтобы вставить эти иерархические данные в другую таблицу. Любое предложение ?
Вам не нужно обернуть подзапрос с КТР –