2012-03-23 82 views
0

这是一个非常奇怪的场景,我刚刚在一位同事的机器上看到。SSMS只返回部分结果

在SSMS中发布update声明时,我们注意到返回的消息表明单个记录已更新。当查询所有记录的同一个表时,SQL仅返回单个结果,该结果与先前的update语句的where子句不匹配。我们几次没有改变就能够再现这种现象。

我们再开一个新的查询选项卡,然后执行完全相同(复制粘贴&)select *查询,在该窗口中,返回了18条记录,包括我们的update语句的where这条规则的记录。

返回到第一个选项卡并正在运行select *仍然只产生一条记录。我们尝试重新连接到该选项卡中的SQL实例,然后能够返回完整的18个结果。

发生了什么事?看起来SSMS似乎有某种错误,但事实上,我们能够在“破损”选项卡中找到updateselect(一个)记录,这是非常令人费解的。有没有人见过这样的事情?

+0

该选项卡可以连接到不同的实例吗? – 2012-03-23 06:40:54

回答

2

以前是否有人在该窗口中发出SET ROWCOUNT 1?你所描述的听起来就像这样。

更改rowcount的效果可以用SET ROWCOUNT 0关闭。

有关in MSDN此选项的更多详细信息。

+0

你说得对,'SET ROWCOUNT 1'确实完全一样。我没有看到它,但我不得不问。 – Colin 2012-03-23 06:50:19

+0

他说不,但我不得不认为它以某种方式发生了。 – Colin 2012-03-23 21:45:40