Обновление и возврат из хранимой процедуры без повторяющегося запроса - PullRequest
1 голос
/ 16 июня 2011

Определив представление в SQL Server 2005, я хочу написать хранимые процедуры, которые возвращают верхние элементы n из этого представления в соответствии с некоторыми критериями сортировки.Тем не менее, прежде чем возвращать их, я должен сделать некоторые обновления этих результатов, но я не могу понять, как сделать это, не запрашивая представление дважды ... Мое решение будет

CREATE PROCEDURE UpdateAndReturn

AS

    UPDATE TableToUpdate SET Field = @Something WHERE IDRef IN (SELECT TOP (n) ID FROM View ORDER BY This, That)

    SELECT TOP (n) * FROM View ORDER BY This, That

GO

Может кто-нибудь помочь мненайти что-нибудь более элегантное и эффективное, чем это?

1 Ответ

2 голосов
/ 16 июня 2011

Сначала запросите представление и поместите результат в табличную переменную или временную таблицу.Используйте эту таблицу в своем операторе обновления и, наконец, выполните select * из временной таблицы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...