SQL:更新表一次只更新7行

时间:2013-11-05 18:38:02

标签: sql database sybase

执行SQL更新时,

update request set state_id = 2 where id in (
           select id from request where state_id = 0 and entity_id in 
           (<list of numbers>)
)

一次只更新7行。

内部选择查询,

 select id from request where state_id = 0 and entity_id in (<list of numbers>)

返回2000多条记录。

我正在使用Squirrel SQL客户端运行查询并检查限制行是否设置为3000.

更有趣的是,如果我在连续执行更新查询之间等待更多时间,则会更新更多行。 我的意思是,当我等待10秒并执行更新时,45行得到了更新。 但是当快速运行时,只有7行会更新。

有人可以帮助我指出我可能做错了什么吗?

执行内部选择 - Select:

执行更新 - Update:

1 个答案:

答案 0 :(得分:0)

我建议编写一个正确的更新,因为我认为没有理由引入涉及子查询的更复杂的查询。另外,为了确保您之前没有改变@@ROWCOUNT

SET @@ROWCOUNT 0;

UPDATE dbo.request
  SET state_id = 2
  WHERE state_id = 0 
  AND entity_id IN (<list of numbers>);

另请检查您是否未人为限制Management Studio中的行数。在工具&gt;选项:

enter image description here

(好吧,如果你已经正确标记了,这将是相关的。检查你对Sybase使用的任何客户端工具,看看它是否有类似的选项。)