powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / конструкция with delete
8 сообщений из 8, страница 1 из 1
конструкция with delete
    #39776507
Sintetik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
WITH CTE AS
(
SELECT *,row_number() over (...) rn
from #xxxxx m2
)
DELETE FROM CTE where rn>1



что делает эта конструкция? она рабочая?
удаляет строки из датасета CTE или из таблицы #xxxxx? удалять из датасета смысла нет, он же только на момент запроса существует
в чужом коде встретил, хочу понять это осмысленная конструкция или от балды воткнули
...
Рейтинг: 0 / 0
конструкция with delete
    #39776515
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дубликаты эта конструкция удаляет.
Проверить заняло бы пару минут.
...
Рейтинг: 0 / 0
конструкция with delete
    #39776577
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Звёздочка там лишняя (хотя выполняться не мешает)
...
Рейтинг: 0 / 0
конструкция with delete
    #39776594
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sintetikчто делает эта конструкция? она рабочая?
удаляет строки из датасета CTE или из таблицы #xxxxx?Если бы CTE было VIEW, и вы бы сделали ему DELETE, то что бы произошло?
Вот и здесь то же самое.
...
Рейтинг: 0 / 0
конструкция with delete
    #39776635
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iapЗвёздочка там лишняя (хотя выполняться не мешает)
Вот не лень писать всякую ерунду.
Лучше бы объяснил неофиту

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
-- это
WITH CTE AS
(
SELECT *,row_number() over (...) rn
from #xxxxx m2
)
DELETE FROM CTE where rn>1

-- эквивалентно этому
DELETE FROM ( SELECT *,row_number() over (...) rn from #xxxxx m2) as CTE where rn>1
...
Рейтинг: 0 / 0
конструкция with delete
    #39776638
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleks222iapЗвёздочка там лишняя (хотя выполняться не мешает)
Вот не лень писать всякую ерунду.
Лучше бы объяснил неофиту

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
-- это
WITH CTE AS
(
SELECT *,row_number() over (...) rn
from #xxxxx m2
)
DELETE FROM CTE where rn>1

-- эквивалентно этому
DELETE FROM ( SELECT *,row_number() over (...) rn from #xxxxx m2) as CTE where rn>1

Сразу понятнее становится, да?
Аналогия с VIEW более конструктивна.
...
Рейтинг: 0 / 0
конструкция with delete
    #39776676
Фотография SIMPLicity_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iapСразу понятнее становится, да?
Аналогия с VIEW более конструктивна.
+1
...
Рейтинг: 0 / 0
конструкция with delete
    #39776795
Sintetik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iapSintetikчто делает эта конструкция? она рабочая?
удаляет строки из датасета CTE или из таблицы #xxxxx?Если бы CTE было VIEW, и вы бы сделали ему DELETE, то что бы произошло?
Вот и здесь то же самое.
я знаю что произошло бы в oracle, а что в mssql нет, не работаю с ним, решил уточнить, спасибо теперь ясно
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / конструкция with delete
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]