Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Курсор в курсоре
|
|||
|---|---|---|---|
|
#18+
Всем добрый день Кто нибуть работал с курсором в курсоре? Работает ли? Есть ли подводные камни? Спасибо за ответы. MS SQL 2000 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2006, 11:21 |
|
||
|
Курсор в курсоре
|
|||
|---|---|---|---|
|
#18+
Я работал. Работает. Есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2006, 11:28 |
|
||
|
Курсор в курсоре
|
|||
|---|---|---|---|
|
#18+
а что, сложно сделать cross join и один курсор ? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2006, 11:30 |
|
||
|
Курсор в курсоре
|
|||
|---|---|---|---|
|
#18+
BOL - Declare cursor - Examples: B. Use nested cursors to produce report output Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2006, 11:37 |
|
||
|
Курсор в курсоре
|
|||
|---|---|---|---|
|
#18+
pkarklinЯ работал. Работает. Есть. какие-если не секрет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2006, 11:39 |
|
||
|
Курсор в курсоре
|
|||
|---|---|---|---|
|
#18+
Crimeanа что, сложно сделать cross join и один курсор ? :) там хитрая идея-просто так не получится просто если есть глюки в курсор в курсоре- то прийдется обойтись другм, более тормознутым но 100% действ рез-том ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2006, 11:42 |
|
||
|
Курсор в курсоре
|
|||
|---|---|---|---|
|
#18+
Обычно до этого абзаца статьи раздела DECLARE CURSOR не дочитывают: авторVariables may be used as part of the select_statement that declares a cursor. Cursor variable values do not change after a cursor is declared. In SQL Server version 6.5 and earlier, variable values are refreshed every time a cursor is reopened. Т.е. вложенный курсор нужно бязательно декларировать внутри внешнеого. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2006, 11:43 |
|
||
|
Курсор в курсоре
|
|||
|---|---|---|---|
|
#18+
pkarklinОбычно до этого абзаца статьи раздела DECLARE CURSOR не дочитывают: авторVariables may be used as part of the select_statement that declares a cursor. Cursor variable values do not change after a cursor is declared. In SQL Server version 6.5 and earlier, variable values are refreshed every time a cursor is reopened. Т.е. вложенный курсор нужно бязательно декларировать внутри внешнеого. т.е. как в примере Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. других камней нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2006, 11:47 |
|
||
|
Курсор в курсоре
|
|||
|---|---|---|---|
|
#18+
простите, что поднимаю "мертвую" тему, но можно ли пример кода "курсор в курсоре" допустим такого вида: есть таблица с некими значениями(таблица 1), которые будем использовать для конструкции запроса и есть таблица с элементами(таблица 2), которые надо проверить на наличие в общей БД Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2019, 18:01 |
|
||
|
Курсор в курсоре
|
|||
|---|---|---|---|
|
#18+
TheKLF, вложенные курсоры прям в документации описаны B. Using nested cursors https://docs.microsoft.com/en-us/sql/t-sql/language-elements/declare-cursor-transact-sql?view=sql-server-2017 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2019, 18:07 |
|
||
|
Курсор в курсоре
|
|||
|---|---|---|---|
|
#18+
TaPaKTheKLF, вложенные курсоры прям в документации описаны B. Using nested cursors https://docs.microsoft.com/en-us/sql/t-sql/language-elements/declare-cursor-transact-sql?view=sql-server-2017 Прочитал три раза. А что там "вложенного" то? Так можно и десять курсоров "вложить". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2019, 19:03 |
|
||
|
Курсор в курсоре
|
|||
|---|---|---|---|
|
#18+
aleks222TaPaKTheKLF, вложенные курсоры прям в документации описаны B. Using nested cursors https://docs.microsoft.com/en-us/sql/t-sql/language-elements/declare-cursor-transact-sql?view=sql-server-2017 Прочитал три раза. А что там "вложенного" то? Так можно и десять курсоров "вложить". Экзампл Би: B. Using nested cursors to produce report output Или это был "САРКАЗМ" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2019, 19:55 |
|
||
|
Курсор в курсоре
|
|||
|---|---|---|---|
|
#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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2019, 20:56 |
|
||
|
Курсор в курсоре
|
|||
|---|---|---|---|
|
#18+
TheKLFСпасибо большое за ответы! вот мой способ решения задачи "Курсор в Курсоре" Код: 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. Студия ошибок не дала (запускать не стал, только смотрел анализ кода), но мне почему-то кажется, что вот это Код: sql 1. 2. должно стоять непосредственно перед Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2019, 23:37 |
|
||
|
Курсор в курсоре
|
|||
|---|---|---|---|
|
#18+
Как-то модно стало объявлять declare @CursorTables CURSOR. Или это из одной бочки решения копипастом. Это лишь бы LOCAL не написать, что ли? Или для крутости все переменные согнать в начало процедуры? Ошибка появится во время выполнения при повторном открытии курсора. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2019, 00:11 |
|
||
|
Курсор в курсоре
|
|||
|---|---|---|---|
|
#18+
Владислав Колосов, спасибо за ответ! А можно чуть подробнее объяснить ваш ответ. Это не copy-paste, просто на всех форумах одно и тоже написано. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2019, 10:23 |
|
||
|
Курсор в курсоре
|
|||
|---|---|---|---|
|
#18+
TheKLF, Курсоры тут нафиг не нужны: Код: 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. В дальнейшем возможно осознаете, что подход "для каждого магазина - своя таблица" также ущербен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2019, 11:02 |
|
||
|
Курсор в курсоре
|
|||
|---|---|---|---|
|
#18+
TheKLFА можно чуть подробнее объяснитьВариант с переменной Код: sql 1. 2. 3. Эквивалентен варианту Код: sql 1. 2. Но в первом варианте можно разнести declare и set снаружи и внутри цикла, и тогда получится ошибка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2019, 11:05 |
|
||
|
Курсор в курсоре
|
|||
|---|---|---|---|
|
#18+
alexeyvgВариант с переменной Код: sql 1. 2. 3. Эквивалентен варианту Код: sql 1. 2. Они эквивалентны, если свойство CURSOR_DEFAULT БД = LOCAL ... а оно, имхо, по умолчанию - GLOBAL ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2019, 11:24 |
|
||
|
Курсор в курсоре
|
|||
|---|---|---|---|
|
#18+
courtОни эквивалентны, если свойство CURSOR_DEFAULT БД = LOCALА, точно BOLThe syntax rules for SET @cursor_variable do not include the LOCAL and GLOBAL keywords. When the SET @cursor_variable = CURSOR... syntax is used, the cursor is created as GLOBAL or LOCAL, depending on the setting of the default to local cursor database option.Я то думал, с переменной он всегда получается LOCAL (никогда не использовал курсорные переменные) Значит, вообще так нельзя писать, ибо непонятно, что получишь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2019, 11:32 |
|
||
|
Курсор в курсоре
|
|||
|---|---|---|---|
|
#18+
court, тип курсора по умолчанию определён в свойствах базы данных. Можно указать явно при создании базы или свойство копируется из базы model. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2019, 14:20 |
|
||
|
Курсор в курсоре
|
|||
|---|---|---|---|
|
#18+
invm, Спасибо большое!!! А не будет вам в большую тягость чуть расшифровать ваш код. Как оно работает Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2019, 17:27 |
|
||
|
Курсор в курсоре
|
|||
|---|---|---|---|
|
#18+
Надо ещё обратить внимание, что курсор по умолчанию ДИНАМИЧЕСКИЙ! Так что будьте осторожны! Все изменения в таблицах, на которых построен курсор, моментально отражаются в курсоре! Например, если имеется ORDER BY, то изменённая запись может снова оказаться впереди текущей позиции курсора и обработаться ещё раз. Вплоть до бесконечного цикла. Обычно эту причину зацикливания не так-то просто найти. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2019, 17:40 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=39786488&tid=1688073]: |
0ms |
get settings: |
8ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
33ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
77ms |
get tp. blocked users: |
2ms |
| others: | 234ms |
| total: | 394ms |

| 0 / 0 |
