|
Действие DELETE в MERGE
|
|||
---|---|---|---|
#18+
Добрый день! Помогите разобраться в действием DELETE в MERGE команде. Есть запрос: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Почему-то DELETE удаляет все записи из таблицы, на не только viID = -2. На какие записи тогда действует DELETE? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2020, 20:41 |
|
Действие DELETE в MERGE
|
|||
---|---|---|---|
#18+
saszay На какие записи тогда действует DELETE? Напишите так Код: sql 1. 2.
А лучше так Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2020, 21:17 |
|
Действие DELETE в MERGE
|
|||
---|---|---|---|
#18+
Но в соединении ведь указано dst.viID = -2. Оно не берётся в расчёт? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2020, 22:05 |
|
Действие DELETE в MERGE
|
|||
---|---|---|---|
#18+
saszay Но в соединении ведь указано dst.viID = -2. Оно не берётся в расчёт? оно как раз и портило всё, не привязывая записи источника и получателя Сделайте как показал invm и всё будет хорошо ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2020, 08:18 |
|
Действие DELETE в MERGE
|
|||
---|---|---|---|
#18+
saszay, SOURCE это все записи выбираемые запросом Код: sql 1.
DESTINAION это все записи из таблицы dbo.SendPrice или Код: sql 1.
по invm Соответственно DELETE будет применять в первом случае к dbo.SendPrice, во втором случае к Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2020, 08:25 |
|
Действие DELETE в MERGE
|
|||
---|---|---|---|
#18+
a_voronin saszay, DESTINAION это все записи из таблицы dbo.SendPrice или Код: sql 1.
по invm Соответственно DELETE будет применять в первом случае к dbo.SendPrice, во втором случае к Код: sql 1.
Это ведь одинаковые записи... Про вариант invm я понял. Он 100% защитит остальные записи в SendPrice? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2020, 09:29 |
|
Действие DELETE в MERGE
|
|||
---|---|---|---|
#18+
saszay, DELECT FROM T FROM (select viID, tosuID, spSum, spSumOld, spKey, spType, spKey1 from dbo.SendPrice where viID = -2 ) T ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2020, 10:07 |
|
Действие DELETE в MERGE
|
|||
---|---|---|---|
#18+
saszay Но в соединении ведь указано dst.viID = -2. Оно не берётся в расчёт? Так вот, MERGE с NOT MATCHED и NOT MATCHED BY SOURCE - это FULL OUTER JOIN ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2020, 10:34 |
|
Действие DELETE в MERGE
|
|||
---|---|---|---|
#18+
saszay, правильней условие where viID = -2 приписывать сразу к target что бы не насиловать всё я так но это не принципиально, выше описано тоже правильно Код: sql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2020, 10:38 |
|
Действие DELETE в MERGE
|
|||
---|---|---|---|
#18+
Вариант invm не проходит по синкатситу: Код: sql 1.
Ругается на первую скобку после Merge ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2020, 12:31 |
|
Действие DELETE в MERGE
|
|||
---|---|---|---|
#18+
saszay, лишняя запятая после нуля у Вас в запросе. Несложно заметить. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2020, 12:37 |
|
Действие DELETE в MERGE
|
|||
---|---|---|---|
#18+
TaPaK saszay, правильней условие where viID = -2 приписывать сразу к target что бы не насиловать всё я так но это не принципиально, выше описано тоже правильно Код: sql 1. 2. 3.
Есть еще вариант написать Код: sql 1. 2.
Вообще TCу уже давно прочитать доку по мерджу ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2020, 14:13 |
|
Действие DELETE в MERGE
|
|||
---|---|---|---|
#18+
[quot a_voronin#22145715] TaPaK saszay, Есть еще вариант написать Код: sql 1. 2.
Вообще TCу уже давно прочитать доку по мерджу этот вариант будет мержить весь источник и при большом обхекте это плохо ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2020, 15:30 |
|
Действие DELETE в MERGE
|
|||
---|---|---|---|
#18+
(кто-то должн сказать и это) а Короткевич рекомендовал не пользоваться MERGE командой ) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2020, 15:47 |
|
Действие DELETE в MERGE
|
|||
---|---|---|---|
#18+
StarikNavy (кто-то должн сказать и это) а Короткевич рекомендовал не пользоваться MERGE командой ) А Длинноязыкович в ответ спросил, а зачем пользоваться UPDATE, DELETE и INSERT, если есть MERGE ? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2020, 16:05 |
|
Действие DELETE в MERGE
|
|||
---|---|---|---|
#18+
StarikNavy (кто-то должн сказать и это) а Короткевич рекомендовал не пользоваться MERGE командой ) ну так привели бы ссылку - тогда можно было бы и обсуждать ps сам люблою юзать (правда в режиме I/U , с D почему-то не люблю - м.б потмоу что в оракле не юзал да там и не было раньше вроде ) - но допускаю что да есть случаи когда I/U/D лушче ну даже хотя бы чтобы отловить кол-во I/U/D по отдельности (скажем для лога в ETL) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2020, 17:52 |
|
Действие DELETE в MERGE
|
|||
---|---|---|---|
#18+
Гулин Федор ну так привели бы ссылку - тогда можно было бы и обсуждать https://www.mssqltips.com/sqlservertip/3074/use-caution-with-sql-servers-merge-statement/ ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2020, 21:42 |
|
Действие DELETE в MERGE
|
|||
---|---|---|---|
#18+
SERG1257 Гулин Федорну так привели бы ссылку - тогда можно было бы и обсуждать https://www.mssqltips.com/sqlservertip/3074/use-caution-with-sql-servers-merge-statement/ Да, список багов впечатлил, притом почти большинство даже не начали рассматривать :-) И интересно, что описания багов закрыты для России, смог открыть только через прокси. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2020, 23:06 |
|
Действие DELETE в MERGE
|
|||
---|---|---|---|
#18+
SERG1257 Гулин Федорну так привели бы ссылку - тогда можно было бы и обсуждать https://www.mssqltips.com/sqlservertip/3074/use-caution-with-sql-servers-merge-statement/ Вот бы сейчас в 2020м году смотреть на баги, которые в 2012 пофиксили. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2020, 23:08 |
|
Действие DELETE в MERGE
|
|||
---|---|---|---|
#18+
Гавриленко Сергей Алексеевич Вот бы сейчас в 2020м году смотреть на баги, которые в 2012 пофиксили. Некоторые там закрыли, это он ошибся, но некоторые, судя по всему, остались, особенно те, которые были стёрты (что бы начать жизнь с чистого листа) с закрытием Microsoft Connect ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2020, 23:14 |
|
Действие DELETE в MERGE
|
|||
---|---|---|---|
#18+
alexeyvg Гавриленко Сергей Алексеевич пропущено... Вот бы сейчас в 2020м году смотреть на баги, которые в 2012 пофиксили. Некоторые там закрыли, это он ошибся, но некоторые, судя по всему, остались, особенно те, которые были стёрты (что бы начать жизнь с чистого листа) с закрытием Microsoft Connect ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2020, 00:25 |
|
Действие DELETE в MERGE
|
|||
---|---|---|---|
#18+
saszay Добрый день! Помогите разобраться в действием DELETE в MERGE команде. Есть запрос: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Почему-то DELETE удаляет все записи из таблицы, на не только viID = -2. На какие записи тогда действует DELETE? Не учите младенцев плохому. Derived Table - вот истинный дао. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2020, 08:29 |
|
|
start [/forum/topic.php?fid=46&fpage=57&tid=1686024]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
184ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 299ms |
0 / 0 |