1
在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
谁能帮助我找到什么比这更优雅高效?