Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Триггер Instead Of Update
|
|||
|---|---|---|---|
|
#18+
Добрый день! Есть представление, которое описано следующим образом: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Для него пишу триггер на изменение: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. триггер на изменение создан корректно, теперь при попытке изменить какую либо строку выдается сообщение: the row value(s) updated or deleted either do not make the row unique or they alter multiple rows Подскажите, что я не так делаю? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2018, 16:39 |
|
||
|
Триггер Instead Of Update
|
|||
|---|---|---|---|
|
#18+
voltПодскажите, что я не так делаю? Курсор в триггере, обожемой, какой верный способ убить производительность. Осознайте, что inserted и deleted - это таблицы, и общаться с ними надо как с таблицами, через join'ы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2018, 16:46 |
|
||
|
Триггер Instead Of Update
|
|||
|---|---|---|---|
|
#18+
volt, говорит что не понимает ваших приколов со сгруппированным предаставлением https://msdn.microsoft.com/en-us/library/ms180800(v=sql.105).aspx ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2018, 16:56 |
|
||
|
Триггер Instead Of Update
|
|||
|---|---|---|---|
|
#18+
TaPaK, Я поэтому и пытаюсь триггер типа Instead of Update, т.к. стандартный функционал представления и не понимает как работать с представлениями из нескольких таблиц. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2018, 17:13 |
|
||
|
Триггер Instead Of Update
|
|||
|---|---|---|---|
|
#18+
voltTaPaK, Я поэтому и пытаюсь триггер типа Instead of Update, т.к. стандартный функционал представления и не понимает как работать с представлениями из нескольких таблиц. какой пункт вам не понятен в предложении или ссылке? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2018, 17:14 |
|
||
|
Триггер Instead Of Update
|
|||
|---|---|---|---|
|
#18+
voltПодскажите, что я не так делаю?Если честно, то все. Во-первых, добаваьте к представление опцию metadata Во-вторых, set nocount on в начало триггера. В-третьих, мало того, что курсор, так еще и inserted сканируется шесть раз вместо одного... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2018, 17:41 |
|
||
|
Триггер Instead Of Update
|
|||
|---|---|---|---|
|
#18+
invmvoltПодскажите, что я не так делаю?Если честно, то все. Во-первых, добаваьте к представление опцию metadata Во-вторых, set nocount on в начало триггера. В-третьих, мало того, что курсор, так еще и inserted сканируется шесть раз вместо одного... VIEW_METADATA ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2018, 18:13 |
|
||
|
Триггер Instead Of Update
|
|||
|---|---|---|---|
|
#18+
volt, у вас в тригере везде КодИздел = @Id уверены, что inserted возвращает уникальные КодИздел (с учётом того, что во вьюхе у вас left join по нему) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2018, 18:16 |
|
||
|
Триггер Instead Of Update
|
|||
|---|---|---|---|
|
#18+
Дедушкаvolt, у вас в тригере везде КодИздел = @Id уверены, что inserted возвращает уникальные КодИздел (с учётом того, что во вьюхе у вас left join по нему) и что что есть left join? Зачем в принципе заниматься модификацией сгруппированного представления.. триггером.. не ясен :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2018, 18:27 |
|
||
|
Триггер Instead Of Update
|
|||
|---|---|---|---|
|
#18+
Дедушка, Как проверить, что содержится в inserted? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2018, 10:20 |
|
||
|
Триггер Instead Of Update
|
|||
|---|---|---|---|
|
#18+
voltДедушка, Как проверить, что содержится в inserted? Через exist, типа Код: sql 1. 2. 3. 4. типо того. Также добавить if @@rowcount = 0 return. Также сделать проверку через функцию Update на нужные столбцы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2018, 10:39 |
|
||
|
Триггер Instead Of Update
|
|||
|---|---|---|---|
|
#18+
aleksrov, автор if @@rowcount = 0 return. MERGE смеётся над этим условием ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2018, 10:40 |
|
||
|
Триггер Instead Of Update
|
|||
|---|---|---|---|
|
#18+
Какого я exist написал... О другом видимо подумал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2018, 10:41 |
|
||
|
Триггер Instead Of Update
|
|||
|---|---|---|---|
|
#18+
TaPaK, ok, если совсем быть пуристом Код: sql 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2018, 10:44 |
|
||
|
Триггер Instead Of Update
|
|||
|---|---|---|---|
|
#18+
TaPaK, Убрал группировку, из представления, все равно не дает модифицировать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2018, 11:14 |
|
||
|
Триггер Instead Of Update
|
|||
|---|---|---|---|
|
#18+
voltTaPaK, Убрал группировку, из представления, все равно не дает модифицировать и поставили DISTINCT? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2018, 11:16 |
|
||
|
Триггер Instead Of Update
|
|||
|---|---|---|---|
|
#18+
TaPaK, в данный момент представление выглядит следующим образом: Код: sql 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2018, 11:42 |
|
||
|
Триггер Instead Of Update
|
|||
|---|---|---|---|
|
#18+
TaPaKvoltTaPaK, Убрал группировку, из представления, все равно не дает модифицировать и поставили DISTINCT? пойду в лотерею играть ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2018, 11:47 |
|
||
|
Триггер Instead Of Update
|
|||
|---|---|---|---|
|
#18+
TaPaK, Не работает не с дистинктом, ни без него... Код: sql 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2018, 13:01 |
|
||
|
Триггер Instead Of Update
|
|||
|---|---|---|---|
|
#18+
volt, а давайте начнем с чтения Документации ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2018, 13:09 |
|
||
|
Триггер Instead Of Update
|
|||
|---|---|---|---|
|
#18+
volt, вы это с дизайнера что-ли делаете? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2018, 13:28 |
|
||
|
Триггер Instead Of Update
|
|||
|---|---|---|---|
|
#18+
TaPaK, Нет, это просто результат работы. Я создаю представление следующим образом: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. Затем создаю триггер: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. При попытке изменить, все работает корректно.. Всем спасибо. Вроде решил. Создал все с нуля - и все работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2018, 13:48 |
|
||
|
Триггер Instead Of Update
|
|||
|---|---|---|---|
|
#18+
volt, а курсор зачем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2018, 13:53 |
|
||
|
Триггер Instead Of Update
|
|||
|---|---|---|---|
|
#18+
TaPaKvolt, а курсор зачем? А он упертый. Ему уже куча народу ответили как должно быть, даже тот же rowcount не добавил, но он решил сделать через курсор и все, по фиг что тут советует. Потом после таких "мастеров" расхлебывай. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2018, 18:30 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=39601966&tid=1690256]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
56ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
| others: | 225ms |
| total: | 385ms |

| 0 / 0 |
