|
Как получить список идентификаторов и типов каскадно удаляемых объектов?
|
|||
---|---|---|---|
#18+
Доброго здоровья всем. Прошу помощи советом и по возможности кодом (сабж). В тексте далее заменил uniqueidentifier на uuid для краткости. Есть таблицы условно TREES, ROOTS, BRANCHES с полями Код: sql 1.
Есть ХП remove_tree(@tree_id) с кодом внутри Код: sql 1.
Вызывается она из кода на С++ У таблицы TREES есть триггер с кодом Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
Вопрос в том чтобы в С++ получить список удаляемых ROOTS и BRANCHES по типам в таком виде id type uuid1, 1 uuid2, 1 uuid3, 2 uuid4, 2 uuid5, 2 где 1 и 2 условные типы удаляемых объектов, можно считать их константами В идеале бы получить такой список в результате вызова ХП remove_order. Т.е. без дополнительных вызовов из С++. Единственный способ как его вообще получить, который я себе представляю как сделать, это лочить таблицы ROOTS и BRANCHES в ХП remove_tree, получать список объектов которые будут удалены, вызывать удаление, отпускать таблицы, возвращать список. Может быть, можно сделать лучше. Как? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2020, 14:30 |
|
Как получить список идентификаторов и типов каскадно удаляемых объектов?
|
|||
---|---|---|---|
#18+
teo609 Как? Код: 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.
Есть еще вариант написать представление + instead of delete на него. И удалять из представления, не забыв указать хинт updlock. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2020, 16:22 |
|
Как получить список идентификаторов и типов каскадно удаляемых объектов?
|
|||
---|---|---|---|
#18+
invm, у меня придумался вариант перед Код: sql 1. 2.
делать Код: sql 1.
а в хп потом Код: sql 1. 2. 3.
Такая идея должна работать? Таблицу можно даже и постоянную иметь, это не страшно. Как из триггера правильно обратиться к @tree_id? deleted.tree_id - должен такой быть? В субботу нет под рукой рабочей базы. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2020, 11:32 |
|
Как получить список идентификаторов и типов каскадно удаляемых объектов?
|
|||
---|---|---|---|
#18+
teo609, Вы спросили как лучше и получили ответ. Если принципиально удалять детей триггером, при этом получить желаемое, то это, как уже говорилось, реализуется через представление. Вот пример: Код: 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. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70.
Само-собой, вам никто не может запретить изобретать собственные велосипеды с квадратными колесами. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2020, 12:06 |
|
Как получить список идентификаторов и типов каскадно удаляемых объектов?
|
|||
---|---|---|---|
#18+
teo609 invm, у меня придумался вариант перед Код: sql 1. 2.
делать Код: sql 1.
а в хп потом 4 Код: sql 1. 2. 3.
Такая идея должна работать? Таблицу можно даже и постоянную иметь, это не страшно. Как из триггера правильно обратиться к @tree_id? deleted.tree_id - должен такой быть? В субботу нет под рукой рабочей базы. То, что написано выше: в 2020 году - это трехколесный лисапед c квадратными колесами https://docs.microsoft.com/en-us/sql/t-sql/queries/output-clause-transact-sql?view=sql-server-ver15 ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2020, 12:45 |
|
Как получить список идентификаторов и типов каскадно удаляемых объектов?
|
|||
---|---|---|---|
#18+
Ролг Хупин То, что написано выше: в 2020 году - это трехколесный лисапед c квадратными колесами https://docs.microsoft.com/en-us/sql/t-sql/queries/output-clause-transact-sql?view=sql-server-ver15 ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2020, 20:54 |
|
|
start [/forum/topic.php?fid=46&msg=39997981&tid=1685655]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
41ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
others: | 262ms |
total: | 401ms |
0 / 0 |