Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Непонятное с sysdatabase  [new]
upor
Member

Откуда:
Сообщений: 11
MS SQL 2008R2 developer edition, version 10.50.1600.1
Есть скрипт который проходится по списку баз на сервере и выполняет с ними разного рода действия, букапы например, для некоторых:
Базы обхожу курсором:
DECLARE curs CURSOR FOR select name from sysdatabases
where name not in ('master', 'tempdb', 'model', 'msdb')

Однако, на одной и той же позиции курсора (читай, базе) стабильно вываливается @@fetch_status = -2
Если же поменять порядок сортировки:
DECLARE curs CURSOR FOR select name from sysdatabases
where name not in ('master', 'tempdb', 'model', 'msdb') order by name desc

- то проходит всё замечательно
Для разнообразия засунул значения select-а во временную табличку - там всё хорошо... Загадочно как то.... С чем это может быть связано?
23 июл 12, 11:52    [12901358]     Ответить | Цитировать Сообщить модератору
 Re: Непонятное с sysdatabase  [new]
denis2710
Member

Откуда: Москва
Сообщений: 3384
upor,
BOL
@@FETCH_STATUS
-2
Выбранная строка отсутствует.

Возможно кто-то удаляет,а потом пересоздает базу.
23 июл 12, 12:05    [12901491]     Ответить | Цитировать Сообщить модератору
 Re: Непонятное с sysdatabase  [new]
upor
Member

Откуда:
Сообщений: 11
Этот вариант исключается (тем более, что делает это в тот момент как только до базы доходит курсор при "не desc" сортировке). Ставил вывод количества баз "select count(*)..." сразу после fetch next (конечно не показатель, но сугубо для "очистки совести") - число баз не меняется.
Странность проявляется только, когда я объявляю курсор так: DECLARE curs CURSOR FOR select name from sysdatabases
where name not in ('master', 'tempdb', 'model', 'msdb').
ЗЫ База на которой "падает" по факту не используется никем.
23 июл 12, 12:12    [12901565]     Ответить | Цитировать Сообщить модератору
 Re: Непонятное с sysdatabase  [new]
Glory
Member

Откуда:
Сообщений: 104751
upor
Для разнообразия засунул значения select-а во временную табличку - там всё хорошо... Загадочно как то.... С чем это может быть связано?

С тем, что курсор у вас динамический
23 июл 12, 12:13    [12901571]     Ответить | Цитировать Сообщить модератору
 Re: Непонятное с sysdatabase  [new]
upor
Member

Откуда:
Сообщений: 11
Спасибо, static помог.
23 июл 12, 12:36    [12901788]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить