|
Теряется табличный параметр при выполнении динамического запроса
|
|||
---|---|---|---|
#18+
Здравствуйте, форумчане. Есть скрипт - болванка для SP: Код: 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. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88.
Комментариями я проставил сообщения об ошибке. Такое впечатление, что при выполнении динамического запроса сервер "забывает" об объявленных параметрах-таблицах. Подскажите, пожалуйста, где косяк. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2020, 20:19 |
|
Теряется табличный параметр при выполнении динамического запроса
|
|||
---|---|---|---|
#18+
Область видимости табличных переменных описана в документации. И ваш код будет работать, если заменить табличную переменную на временную таблицу. Впрочем, об этом тоже написано в хелпе. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2020, 20:25 |
|
Теряется табличный параметр при выполнении динамического запроса
|
|||
---|---|---|---|
#18+
Кажется разобрался :) Дело в том, что динамический SQL выполняется как ОТДЕЛЬНЫЙ блок кода и параметров, объявленных в коде, его вызывающем, не видит. Т.е. в моем примере таблицы-параметры @Tbl и @Tbl2 находятся за пределами блока Exec, поэтому-то и не видны. Заменил таблицы-параметры на временные #Tbl и #Tbl2 и все заработало. Если будут комментарии, в т.ч. и критические, буду благодарен Мастерам. Розги, тухлые яйца и булыжники не приветствуются, но принимаются :) Спасибо за любые советы и критику ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2020, 20:52 |
|
Теряется табличный параметр при выполнении динамического запроса
|
|||
---|---|---|---|
#18+
Гавриленко Сергей Алексеевич, Когда писал дополнение, Ваш пост не видел. Но он лишь подтвердил мою "догадку" :) Спасибо, Серега :) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2020, 20:54 |
|
Теряется табличный параметр при выполнении динамического запроса
|
|||
---|---|---|---|
#18+
MsGuns таблицы-параметры @Tbl и @Tbl2 Это табличные переменные. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2020, 22:02 |
|
Теряется табличный параметр при выполнении динамического запроса
|
|||
---|---|---|---|
#18+
MsGuns, Код: sql 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2020, 10:20 |
|
Теряется табличный параметр при выполнении динамического запроса
|
|||
---|---|---|---|
#18+
iap, Это ясно, просто выразился неверно, но понимаю верно :) Главное, что с такими переменными можно работать как с обычными таблицами (Select,Insert,Update...), но при этом 'таблица' уничтожится при выходе из ХП. И никаких DROP не требуется. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2020, 17:13 |
|
Теряется табличный параметр при выполнении динамического запроса
|
|||
---|---|---|---|
#18+
MsGuns iap, Это ясно, просто выразился неверно, но понимаю верно :) Главное, что с такими переменными можно работать как с обычными таблицами (Select,Insert,Update...), но при этом 'таблица' уничтожится при выходе из ХП. И никаких DROP не требуется. Так и # таблицы "уничтожится при выходе из ХП. И никаких DROP не требуется" ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2020, 17:15 |
|
Теряется табличный параметр при выполнении динамического запроса
|
|||
---|---|---|---|
#18+
msLex MsGuns iap, Это ясно, просто выразился неверно, но понимаю верно :) Главное, что с такими переменными можно работать как с обычными таблицами (Select,Insert,Update...), но при этом 'таблица' уничтожится при выходе из ХП. И никаких DROP не требуется. Так и # таблицы "уничтожится при выходе из ХП. И никаких DROP не требуется" ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2020, 19:30 |
|
Теряется табличный параметр при выполнении динамического запроса
|
|||
---|---|---|---|
#18+
alexeyvg, Там все не так просто с закешированными планами. Суть: пока план есть, таблица точно есть, а на сдачу еще и данные есть. Я где-то давно что-то на эту тему приводил, но это не точно. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2020, 02:43 |
|
Теряется табличный параметр при выполнении динамического запроса
|
|||
---|---|---|---|
#18+
alexeyvg, возможны ситуации, при которых сборщик мусора не успевает освобождать страницы tempdb по сравнению со скоростью создания этих таблиц. Это недостаток архитектуры приложения, но случай возможный. В такой ситуации прибегают к "синхронному" удалению таблиц, хотя это может привести к проявлению известного бага, который периодически лечат. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2020, 15:30 |
|
Теряется табличный параметр при выполнении динамического запроса
|
|||
---|---|---|---|
#18+
Владислав Колосов alexeyvg, возможны ситуации, при которых сборщик мусора не успевает освобождать страницы tempdb по сравнению со скоростью создания этих таблиц. А как это проявляется, и какие могут быть последствия? Что то вроде роста занятого места в tempdb, при высокой нагрузке? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2020, 15:57 |
|
|
start [/forum/topic.php?fid=46&fpage=69&tid=1686486]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
33ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
2ms |
others: | 24ms |
total: | 160ms |
0 / 0 |