Я просто чтение о курсорах SQL Server, что следует избегать их столько, сколько я могу :)SQL Server избегая курсоры
Всегда ли способ написать запрос/функцию/процедуру без курсоров?
Я нашел несколько примеров в Сети, но они, как правило, довольно просты.
Мой пример - я могу избежать курсоры ?:
Давайте процедуру обновления X, принимая идентификатор счета и идентификатор транзакции - это уникальный ключ строки, я хочу, чтобы обновить
Но есть больше сделок за счет
SELECT accID, transID from table
Теперь я использую курсор петли на столе, всегда принимая accID
и transID
, чтобы получить строку и обновить его
Могу ли я сделать это не курсором?
Благодаря
Как вы обновляете - какая логика? Это полностью зависит от логики, но для большинства операций, да, вы можете? – Oded
У меня есть идентификатор учетной записи, но в «таблице» есть «номера вспомогательных счетов» = у меня есть ACC111, но есть ACC111-001; ACC111-002. Это означает, что я получаю все транзакционные идентификаторы: пары subAccountNum для одного идентификатора учетной записи, а затем использовать курсор для петли над этими парами и таблицу UPDATE SET x = y WHERE subAccId = @ subAccId и transID = @ transID (это помогает?) – Jaroslav
Проверьте эту ссылку, есть много хороших примеров: http://wiki.lessthandot.com/index.php/Cursors_and_How_to_Avoid_Them –