|
Как определить из какой таблицы в многотабличном обновляемом запросе Access удалит запись?
|
|||
---|---|---|---|
#18+
Если есть сложный многотабличный обновляемый запрос, то в большинстве случаев из него можно удалить строку. Как можно определить из какой таблицы будет происходить удаление? Похоже что решение Access принимает на основе того, какие индексы определены в таблицах и как они связаны, но сам алгоритм выбора мне ещё не понятен. IMHO, Mon$te® ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2018, 08:48 |
|
Как определить из какой таблицы в многотабличном обновляемом запросе Access удалит запись?
|
|||
---|---|---|---|
#18+
4d_monster, Также влияет и тип связи в запросе. Если не INNER, а просто LEFT/RIGHT, то будет делать вид что удаляет но удалять не будет. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2018, 10:54 |
|
Как определить из какой таблицы в многотабличном обновляемом запросе Access удалит запись?
|
|||
---|---|---|---|
#18+
4d_monsterЕсли есть сложный многотабличный обновляемый запрос, то в большинстве случаев из него можно удалить строку.А как же целостность данных? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2018, 11:02 |
|
Как определить из какой таблицы в многотабличном обновляемом запросе Access удалит запись?
|
|||
---|---|---|---|
#18+
sdku, Да, конечно. Но это влияет уже на сам процесс удаления, когда Access уже решил откуда удалять. А мне нужно определить откуда он хочет удалить. Да и не все таблицы имеют ограничения на целостность, да и просто связи c другими. Это требуется, что бы писать тригеры INSTEAD OF DELETE для VIEW при переносе на SQL Server, т.к. он "ваще" не умеет удалять если есть больше одной таблицы. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2018, 11:10 |
|
Как определить из какой таблицы в многотабличном обновляемом запросе Access удалит запись?
|
|||
---|---|---|---|
#18+
Вот для примера Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
Если при таком голом определении создать запрос, он будет, конечно вообще не обновляемым. Код: vbnet 1. 2.
Добавляем индексы: Код: vbnet 1. 2. 3.
Теперь он обновляем. И будет удалять из DocsItem. Если левой таблицей сделать Items - то будет только делать вид что удаляет, при Resfresh покажет опять все записи. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2018, 11:35 |
|
Как определить из какой таблицы в многотабличном обновляемом запросе Access удалит запись?
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2018, 11:58 |
|
Как определить из какой таблицы в многотабличном обновляемом запросе Access удалит запись?
|
|||
---|---|---|---|
#18+
Панург, Так задача как раз по тексту запроса и свойствам таблиц определить какая из упомянутых таблиц UniqueTable. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2018, 12:06 |
|
Как определить из какой таблицы в многотабличном обновляемом запросе Access удалит запись?
|
|||
---|---|---|---|
#18+
Пока что сделал так: по * OUTER JOIN доходим до начала цепочки - и вот она UniqueTable. Если среди JOIN ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2018, 13:25 |
|
Как определить из какой таблицы в многотабличном обновляемом запросе Access удалит запись?
|
|||
---|---|---|---|
#18+
... Если среди JOIN есть [*] INNER JOIN - сдаёмся и прерываем поиск. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2018, 13:27 |
|
Как определить из какой таблицы в многотабличном обновляемом запросе Access удалит запись?
|
|||
---|---|---|---|
#18+
Создание в рабочей базе нескольких таблиц,а затем удаление части из них не есть хорошо.А почему нельзя,еще на этапе разработки БД,создать временную таблицу (или создавать по мере надобности),в которую помещать уже отобранные по какому-либо критерию(ям)записи и на ней создавать объект (форму,запрос,отчет)и очищать (удалять) её при закрытии объекта ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2018, 15:11 |
|
Как определить из какой таблицы в многотабличном обновляемом запросе Access удалит запись?
|
|||
---|---|---|---|
#18+
sdku, так всё сложилось исторически. И описанный вами вариант, тоже присутствует. Но сейчас задача просто перетащить всё на SQL Server. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2018, 15:42 |
|
|
start [/forum/topic.php?fid=45&msg=39742025&tid=1610998]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
50ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
others: | 10ms |
total: | 147ms |
0 / 0 |