Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Исключить рекурсивный вызов из процедуры
|
|||
|---|---|---|---|
|
#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. 72. 73. 74. 75. 76. 77. ******************************* Люди добрые помогите решить проблему, без рекурсии пробовал вообще не работает... Необходимо ускорить процесс выбора свободного номера. Номера формируются по следующему алгоритму: 1. Очистить таблицу резервных номеров за прошлые сутки 2. Выбрать первый свободный номер в году (не следующий после максимального, а именно первый свободный, если считать начиная с единицы). При этом занятые резервные номера также брать нельзя. 3. Зарезервировать номер в таблице XAF.CD_Bookings_Doc_Number ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2019, 18:08 |
|
||
|
Исключить рекурсивный вызов из процедуры
|
|||
|---|---|---|---|
|
#18+
Эпический бред. Сгенерите вы все свои номерки в постоянную таблицу и выбирайте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2019, 18:23 |
|
||
|
Исключить рекурсивный вызов из процедуры
|
|||
|---|---|---|---|
|
#18+
Есть несколько вариантов нахождения пропущенных значений. Рекурсия уж точно тут не нужна как и Код: sql 1. Например вы можете использовать min()+1 NOT EXISTS ... +1 к вашей выборке, где вы ищите первое пропущенное значение. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2019, 03:05 |
|
||
|
Исключить рекурсивный вызов из процедуры
|
|||
|---|---|---|---|
|
#18+
Я для подобного такой TABLE VALUE UDF пользуюсь: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. А с ней уже EXCLUDE пересечение и забирать MIN значение. Если 10000 значений мало, добавьте еще сколько надо CROSS JOINов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2019, 12:09 |
|
||
|
Исключить рекурсивный вызов из процедуры
|
|||
|---|---|---|---|
|
#18+
Я не стал разбираться с вашими расчётами. Если по-большому: таблицу занятых номеров вы как-то строите? Ведь так? Постройте вспомогательную таблицу с полем пробелом и айдентити-инт. Загоните туда 200,000 записей. При желании-это один инсерт-селект . Сделайте во вспомог. таблице делит, глядя в таблицу занятых номеров. Первая запись, что осталась-ваша. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2019, 15:23 |
|
||
|
Исключить рекурсивный вызов из процедуры
|
|||
|---|---|---|---|
|
#18+
Yuri Abele, Спасибо, вы мне очень помогли! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2019, 17:09 |
|
||
|
Исключить рекурсивный вызов из процедуры
|
|||
|---|---|---|---|
|
#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. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. Только проблема в том, что в таблицу XAF.CD_Bookings_Doc_Number записывается один и тот же номер, а нужно чтоб следующий из не занятых номеров. Что нужно и куда дописать, чтоб сравнирь @DocNumbers и XAF.CD_Bookings_Doc_Number, если в XAF.CD_Bookings_Doc_Number есть минимальный номер, то записать в таблицу следующий из @DocNumbers ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2019, 15:10 |
|
||
|
Исключить рекурсивный вызов из процедуры
|
|||
|---|---|---|---|
|
#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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2019, 16:12 |
|
||
|
Исключить рекурсивный вызов из процедуры
|
|||
|---|---|---|---|
|
#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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2019, 16:16 |
|
||
|
Исключить рекурсивный вызов из процедуры
|
|||
|---|---|---|---|
|
#18+
Увы нет! min(C_Number) + 1 -- выбирает как в математике +1. например: первый свободный номер в базе 3275, первый раз программа его выбирает и записывает в таблицу, второй раз программа выбирает 3276, но этот номер занят.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2019, 16:46 |
|
||
|
Исключить рекурсивный вызов из процедуры
|
|||
|---|---|---|---|
|
#18+
По аналогии я так пробовала, чуть по другому у меня код выглядел... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2019, 16:47 |
|
||
|
Исключить рекурсивный вызов из процедуры
|
|||
|---|---|---|---|
|
#18+
aleks222,Спасибо за помощь, но ваш запрос не работает, как бы я его не видоизменяла. Пишет! (0 row(s) affected) Msg 2627, Level 14, State 2, Line 36 Violation of PRIMARY KEY constraint 'PK__#ABAE134__2F653DEB25F6E8D6'. Cannot insert duplicate key in object 'dbo.@UsedNumbers'. The duplicate key value is (92). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2019, 17:04 |
|
||
|
Исключить рекурсивный вызов из процедуры
|
|||
|---|---|---|---|
|
#18+
Код: sql 1. 2. 3. 4. 5. только это как-то неаккуратненько. ЗЫ. Желательно понять, а не повторить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2019, 17:17 |
|
||
|
Исключить рекурсивный вызов из процедуры
|
|||
|---|---|---|---|
|
#18+
Svetaahmзапрос не работает, как бы я его не видоизменяла. Пишет! (0 row(s) affected) Msg 2627, Level 14, State 2, Line 36 Violation of PRIMARY KEY constraint 'PK__#ABAE134__2F653DEB25F6E8D6'. Cannot insert duplicate key in object 'dbo.@UsedNumbers'. The duplicate key value is (92).Замените uniuon all на union ЗЫ: Если данная процедура вызывается одновременно в нескольких сессиях - рискуете бронировать один и тот же номер несколько раз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2019, 17:25 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=39833756&tid=1687584]: |
0ms |
get settings: |
8ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
56ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
70ms |
get tp. blocked users: |
2ms |
| others: | 254ms |
| total: | 430ms |

| 0 / 0 |
