执行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行会更新。
有人可以帮助我指出我可能做错了什么吗?
执行内部选择 -
执行更新 -
答案 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;选项:
(好吧,如果你已经正确标记了,这将是相关的。检查你对Sybase使用的任何客户端工具,看看它是否有类似的选项。)