【发布时间】:2010-02-24 23:56:56
【问题描述】:
我的 SQL Server 2008 DB 中有一个简单的表:
Tasks_Table
-id
-task_complete
-task_active
-column_1
-..
-column_N
该表存储必须由服务执行的未完成任务的指令。
我希望将来能够扩展我的系统。到目前为止,只有 1 台计算机上的 1 个服务从表中读取。我有一个存储过程,它选择所有未完成和非活动的任务。当服务开始处理任务时,它会更新所有返回行中的 task_active 标志。
要启用系统扩展,我想在更多机器上启用服务部署。因为我想防止将一个任务返回给多个服务,所以我必须更新返回未完成和非活动任务的存储过程。
我认为我必须锁定表(一次只有 1 个读取器 - 我知道我必须使用适当的 ISOLATION LEVEL),并在返回结果集之前更新结果集每一行中的 task_active 标志。
所以我的问题是如何在返回之前修改存储过程中的SELECT结果集?
【问题讨论】:
标签: sql-server tsql sql-server-2008 stored-procedures