Работа с WITH в SQL
Всем доброго времени суток!
Имеется SQL код:
WITH contractor_ids AS
(
SELECT id FROM contractors WHERE count IN (1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
)
DELETE FROM properties WHERE contractor_id IN (SELECT id FROM contractor_ids)
GO
--WITH contractor_ids AS
--(
-- SELECT id FROM contractors WHERE count IN (1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
--)
DELETE FROM contractors WHERE id IN (SELECT id FROM contractor_ids)
GO
Почему, если оставить комментарий, то код не работает? У WITH есть какая-то зона видимости? И как в таком случае поступить?
Ответы (1 шт):
Автор решения: Vitaliy Zlobin
→ Ссылка
GO - разделитель пакетов, это почти тоже самое, что на одной вкладке написать CTE, а на другой вкладке пытаться обратиться к ней.
В данном случае GO между запросом нужно удалить/закомментировать.
Код раздутый, тут достаточно 2х строк:
DELETE FROM properties WHERE contractor_id BETWEEN 1 AND 10
DELETE FROM contractors WHERE id BETWEEN 1 AND 10