Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / привести поведение UPDATE на SQL Server к поведению как у Access / 9 сообщений из 9, страница 1 из 1
02.11.2018, 09:14
    #39726953
4d_monster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
привести поведение UPDATE на SQL Server к поведению как у Access
Прошу помощи в соседнем разделе Microsoft Access / привести поведение UPDATE на SQL Server к поведению как у Access

Суть: UPDATE запрос ведёт себя по разному в SQL server и Access. Эта разница описана в документации. Как обойти/исправить эту разницу?

Microsoft SQL Server 2017 (RTM) - 14.0.1000.169 (X64) Aug 22 2017 17:04:49 Copyright (C) 2017 Microsoft Corporation Express Edition (64-bit) on Windows 10 Pro 10.0 <X64> (Build 16299: ) (Hypervisor)
...
Рейтинг: 0 / 0
02.11.2018, 09:36
    #39726979
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
привести поведение UPDATE на SQL Server к поведению как у Access
4d_monsterКак обойти/исправить эту разницу?Вы же сами нашли решение - переписать код, который на MSSQL работает не так, как вам нужно.

Не представляю, какие ещё могут быть варианты? Опции "как в ACCESS" в MSSQL нет.
...
Рейтинг: 0 / 0
02.11.2018, 09:45
    #39726988
4d_monster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
привести поведение UPDATE на SQL Server к поведению как у Access
alexeyvg,

Я нашёл решение, которое могу применить в ручном режиме. А хочу найти такое, которое можно применить программно. Обернуть в группировку одну из таблиц запроса c одним JOIN , можно при помощи простого кода, а когда JOINов больше и целевая таблица внутри этой цепочки - программа по анализу и изменению текста запроса мне кажется слишком трудоёмкая.
...
Рейтинг: 0 / 0
02.11.2018, 10:21
    #39727021
court
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
привести поведение UPDATE на SQL Server к поведению как у Access
4d_monster,

чисто как вариант, - можно триггер INSTEAD OF "прицепить" который будет "моделировать" такое поведение при UPDATE

Но правильно было бы, конечно, переделывать.

Вообще не знаю, кто и чем думал, построив логику на такой частной и "дикой" особенности Акс-а ... !
...
Рейтинг: 0 / 0
02.11.2018, 10:38
    #39727034
invm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
привести поведение UPDATE на SQL Server к поведению как у Access
courtчисто как вариант, - можно триггер INSTEAD OF "прицепить" который будет "моделировать" такое поведение при UPDATEОткуда триггер возьмет множество строк на одну обновляемую?
...
Рейтинг: 0 / 0
02.11.2018, 10:42
    #39727038
Shakill
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
привести поведение UPDATE на SQL Server к поведению как у Access
4d_monsterЯ нашёл решение, которое могу применить в ручном режиме.
это и есть правильное решение в данном случае, надо переписывать несовместимый код. результаты вашей миграции ещё потом поддерживать как-то людям придётся
...
Рейтинг: 0 / 0
02.11.2018, 10:54
    #39727050
court
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
привести поведение UPDATE на SQL Server к поведению как у Access
invmcourtчисто как вариант, - можно триггер INSTEAD OF "прицепить" который будет "моделировать" такое поведение при UPDATEОткуда триггер возьмет множество строк на одну обновляемую?а это не понадобится :)

Имелось в виду, что в триггере, вместо вызвавшего его
Код: sql
1.
UPDATE B SET B.valB = B.valB + A.valA FROM A INNER JOIN B ON A.id = B.id ;


будет выполнено
Код: sql
1.
UPDATE B SET B.valB = B.valB + AA.valA FROM (SELECT SUM(valA) as valA, id FROM A GROUP BY id) AS AA INNER JOIN B ON AA.id = B.id ;
...
Рейтинг: 0 / 0
02.11.2018, 11:15
    #39727080
invm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
привести поведение UPDATE на SQL Server к поведению как у Access
courtбудет выполнено...Т.е. специализированный костыльный триггер, который еще надо будет как-то научить отличать "костыльный" случай от "некостыльного"?
...
Рейтинг: 0 / 0
02.11.2018, 11:29
    #39727098
court
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
привести поведение UPDATE на SQL Server к поведению как у Access
invmТ.е. специализированный костыльный триггерон самый :)

"Отчаянные времена требуют отчаянных мер" (с) :))
Описываем все возможные запросы UPDATE B и "реакцию" на них в триггере.
Все "не описанные" "давим" raiserror-ом. Так победим ! :)
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / привести поведение UPDATE на SQL Server к поведению как у Access / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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