Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Засада с @@trancount
|
|||
|---|---|---|---|
|
#18+
День добрый Создал репро ситуации (в реалии все сложнее) Код: 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. Вообщем когда идут selectы @@trancount из процедуры - все ожидаемо Во всех селектах , кроме FOUR (в этом случае он 1) значение @@trancount 0 Но ....при если посмотреть select * from dbo.elog то присутствует запись Код: sql 1. 2. 3. Не понятно откуда взялась это цифра Плюс селекты сразу до SIX и после SEVEN выдают 0 Подскажите пожалуйста - куда копать ? Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2018, 11:22 |
|
||
|
Засада с @@trancount
|
|||
|---|---|---|---|
|
#18+
BredSpit, Любая модификация данных в не транзакции выполняется в неявной транзакции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2018, 11:32 |
|
||
|
Засада с @@trancount
|
|||
|---|---|---|---|
|
#18+
msLex, спасибо Я думал в этом направлении Но : 1) почему все таки селекты в процедуре показывают всегда ноль И только селект из таблицы показывает другое значение 2) почему 'Trancount begin= ' из таблицы выдает 0 И вообще где @@trancount соответствует действительности ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2018, 11:36 |
|
||
|
Засада с @@trancount
|
|||
|---|---|---|---|
|
#18+
BredSpit1) почему все таки селекты в процедуре показывают всегда ноль Я имел ввиду ноль в SIX и SEVEN и 1 в FOUR (что ожидаемо) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2018, 11:38 |
|
||
|
Засада с @@trancount
|
|||
|---|---|---|---|
|
#18+
BredSpitmsLex, спасибо Я думал в этом направлении Но : 2) почему 'Trancount begin= ' из таблицы выдает 0 так и перепешите одинаково будет 2 в обоих случаях. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2018, 11:42 |
|
||
|
Засада с @@trancount
|
|||
|---|---|---|---|
|
#18+
TaPaKBredSpitmsLex, спасибо Я думал в этом направлении Но : 2) почему 'Trancount begin= ' из таблицы выдает 0 так и перепешите одинаково будет 2 в обоих случаях. Ok - согласен с этим Если переписать напрямую через Код: sql 1. будет ненулевой результат Но почему select'ы @@trancount из процедуры тогда выдают отличные значения ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2018, 11:49 |
|
||
|
Засада с @@trancount
|
|||
|---|---|---|---|
|
#18+
Каждый BEGIN TRANSACTION увеличивает @@TRANCOUNT на 1. А COMMIT TRANSACTION уменьшает на 1. При этом вложенных транзакций не бывает. BEGIN TRANSACTION внутри транзакции просто увеличивает @@TRANCOUNT - и больше ничего. Извините, если я написал банальности, не разобравшись. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2018, 11:50 |
|
||
|
Засада с @@trancount
|
|||
|---|---|---|---|
|
#18+
iap, Сорри, то что Вы написали , я понимаю У меня ситуация - есть INSERT в таблицу elog которая идет вне BEGIN TRAN COMMIT TRAN (несколько до BEGIN и одна после COMMIT) select @@trancount из процедуры (до BEGIN и после COMMIT ) показывает 0 (TWO,THREE,SIX,SEVEN) Но insert в eLog Код: sql 1. 2. показывает ненулевое значение Вот этого я и не пойму ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2018, 11:59 |
|
||
|
Засада с @@trancount
|
|||
|---|---|---|---|
|
#18+
BredSpit, ну 0 и не должно быть, почему 2 это загадка поведения @@trancount ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2018, 12:03 |
|
||
|
Засада с @@trancount
|
|||
|---|---|---|---|
|
#18+
TaPaK, все SELECTы @@trancount из процедуры, кроме случая FOUR - показывают 0 (((( Вот что непонятно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2018, 12:08 |
|
||
|
Засада с @@trancount
|
|||
|---|---|---|---|
|
#18+
BredSpitTaPaK, все SELECTы @@trancount из процедуры, кроме случая FOUR - показывают 0 (((( Вот что непонятно select dyenhb insert выполняется внутри транзакции. Почему 2, это единственный неясный вопрос :) Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2018, 12:11 |
|
||
|
Засада с @@trancount
|
|||
|---|---|---|---|
|
#18+
TaPaK, спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2018, 12:21 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=39691632&tid=1689228]: |
0ms |
get settings: |
8ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
44ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
| others: | 265ms |
| total: | 420ms |

| 0 / 0 |
