2012-03-23 57 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