Sql server 2008 r2 选择并设置ROWCOUNT

Sql server 2008 r2 选择并设置ROWCOUNT,sql-server-2008-r2,Sql Server 2008 R2,我有一个SP,可以使用它获取一定数量的行。如何更改获取行中列的值?例如“已提取”=1 有什么建议吗 编辑: SP看起来像这样 SET ROWCOUNT @numberOfRows SELECT * FROM tableA where notSent = 1 我想更改我获取的所有行的“NotSend”列。这是可能的吗?1)不要在存储过程中使用Select*-始终明确列出所需的字段,如下所示-将字段1、2、3等替换为要返回的实际字段 确定-修改后的答案: 2) 在要选择的列上设置一个标志,并使用

我有一个SP,可以使用它获取一定数量的行。如何更改获取行中列的值?例如“已提取”=1

有什么建议吗

编辑: SP看起来像这样

SET ROWCOUNT @numberOfRows

SELECT * FROM tableA where notSent = 1
我想更改我获取的所有行的“NotSend”列。这是可能的吗?

1)不要在存储过程中使用Select*-始终明确列出所需的字段,如下所示-将字段1、2、3等替换为要返回的实际字段

确定-修改后的答案:

2) 在要选择的列上设置一个标志,并使用一个不会以编程方式设置的值(例如-1)进行更新,然后选择这些记录,然后更新它们以设置所需的最终值。这样做可以避免由于插入发生在存储过程执行的中途而将不同的记录集更新为所选记录集的可能性。您也可以通过使用锁来避免这种情况,但下面的方法将更加健康

 UPDATE Table set notSent = -1 WHERE notSent = 0

 SELECT ... from Table where notSent = -1

 UPDATE Table set notSent = 1 where notSent = -1

你能说得更具体些吗。请:)我想你误解了我的问题。我想在数据库中更改notSent为1,当它们被获取OK-我假设它们从0开始,您选择all at 0,然后将它们更新为1。。。以上修改