Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / конструкция with delete / 8 сообщений из 8, страница 1 из 1
20.02.2019, 00:41
    #39776507
Sintetik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
конструкция with delete
Код: 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
20.02.2019, 01:26
    #39776515
Гавриленко Сергей Алексеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
конструкция with delete
Дубликаты эта конструкция удаляет.
Проверить заняло бы пару минут.
...
Рейтинг: 0 / 0
20.02.2019, 09:36
    #39776577
iap
iap
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
конструкция with delete
Звёздочка там лишняя (хотя выполняться не мешает)
...
Рейтинг: 0 / 0
20.02.2019, 10:09
    #39776594
iap
iap
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
конструкция with delete
Sintetikчто делает эта конструкция? она рабочая?
удаляет строки из датасета CTE или из таблицы #xxxxx?Если бы CTE было VIEW, и вы бы сделали ему DELETE, то что бы произошло?
Вот и здесь то же самое.
...
Рейтинг: 0 / 0
20.02.2019, 11:24
    #39776635
aleks222
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
конструкция with delete
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
20.02.2019, 11:27
    #39776638
iap
iap
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
конструкция with delete
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
20.02.2019, 12:30
    #39776676
SIMPLicity_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
конструкция with delete
iapСразу понятнее становится, да?
Аналогия с VIEW более конструктивна.
+1
...
Рейтинг: 0 / 0
20.02.2019, 15:35
    #39776795
Sintetik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
конструкция with delete
iapSintetikчто делает эта конструкция? она рабочая?
удаляет строки из датасета CTE или из таблицы #xxxxx?Если бы CTE было VIEW, и вы бы сделали ему DELETE, то что бы произошло?
Вот и здесь то же самое.
я знаю что произошло бы в oracle, а что в mssql нет, не работаю с ним, решил уточнить, спасибо теперь ясно
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / конструкция with delete / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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