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

Откуда: Москва
Сообщений: 215
Добавить в тело одного курсора второй или поставить их последовательно?

MS SQL 2000
30 июл 09, 06:49    [7476540]     Ответить | Цитировать Сообщить модератору
 Re: Что оптимальнее для быстрой работы?  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
Azvaal
Добавить в тело одного курсора второй или поставить их последовательно?

MS SQL 2000
В большинстве случаев, оптимальнее вообще не использовать курсоры...

Сообщение было отредактировано: 30 июл 09, 06:50
30 июл 09, 06:50    [7476541]     Ответить | Цитировать Сообщить модератору
 Re: Что оптимальнее для быстрой работы?  [new]
Azvaal
Member

Откуда: Москва
Сообщений: 215
tpg,

тогда друг мой, подскажите, как последовательно перебрать все поля таблицы, проверить их на условие и проапдейтить по результатам проверки?
30 июл 09, 07:05    [7476550]     Ответить | Цитировать Сообщить модератору
 Re: Что оптимальнее для быстрой работы?  [new]
Azvaal
Member

Откуда: Москва
Сообщений: 215
не совсем так... Есть две таблицы связанные друг с другом по айди. В одной таблицы суммы для списания, в другой лимит.

Так вот нужно перебрать все суммы по одной и каждый раз с лимита списывать эти суммы. Если сумма списания больше лимита, то сумму установить в 0.
30 июл 09, 07:08    [7476553]     Ответить | Цитировать Сообщить модератору
 Re: Что оптимальнее для быстрой работы?  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
Azvaal
последовательно перебрать все поля таблицы, проверить их на условие и проапдейтить по результатам проверки?
Например, так
update
    Tabl
set
   pole1 = case when <условие1 истинно> then <новое значение1> else pole1 end
   , pole2 = case when <условие2 истинно> then <новое значение2> else pole2 end
   , pole3 = case when <условие3 истинно> then <новое значение3> else pole3 end
.
.
.
   , poleN = case when <условиеN истинно> then <новое значениеN> else poleN end
Но, скорее всего, у вас ошибки в проектировании...
30 июл 09, 07:11    [7476555]     Ответить | Цитировать Сообщить модератору
 Re: Что оптимальнее для быстрой работы?  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
Azvaal
не совсем так... Есть две таблицы связанные друг с другом по айди. В одной таблицы суммы для списания, в другой лимит.

Так вот нужно перебрать все суммы по одной и каждый раз с лимита списывать эти суммы. Если сумма списания больше лимита, то сумму установить в 0.
Тогда, публикуйте DDL таблиц, скрипт заполнения их тестовыми данными и описание ожидаемого результата.
30 июл 09, 07:17    [7476561]     Ответить | Цитировать Сообщить модератору
 Re: Что оптимальнее для быстрой работы?  [new]
Crimean
Member

Откуда:
Сообщений: 13148
там небось хранимку дернуть надо для каждой строки :)
а для этого курсор удобнее
30 июл 09, 10:13    [7477111]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить