2012-01-22 35 views
15

我正在研究SQL Server 2008 R2實例。我剛更改了存儲過程的代碼。當我嘗試調試該過程時,SSMS調試窗口顯示較舊的版本的代碼。調試不顯示當前的存儲過程版本

我能做些什麼來強制SSMS呈現當前版本的代碼?

在此先感謝。

+0

你使用它修改'ALTER PROCEDURE'腳本?如果是這樣,請嘗試執行「DROP PROCEDURE」+「CREATE PROCEDURE」。我曾經遇到這個問題 - ALTER'沒有更新可能的程序到新版本的代碼 – GolfWolf

+0

也許文件需要先保存? – JeffO

+0

@JeffO:文件?沒有文件 - 我將該過程直接更改爲服務器。 – rsenna

回答

9

這個問題同樣的問題已存在多年在SQL Server中。在與正確版本的源同步之前,通常需要一段時間才能啓動和停止調試器。

您還會注意到有幾個窗口打開,顯示調試器意識到的最後一個源。他們需要關閉。儘管它是皮塔餅,但解決問題的最快方法是停止管理工作室並重新啓動它。

+3

使用DBCC FREEPROCCACHE清除過程高速緩存。 - >感謝Dave Pinal(誰知道SQL Server的所有東西!!)http://blog.sqlauthority.com/2007/03/23/sql-server-stored-procedure-clean-cache-and-clean-緩衝區/ –

+3

運行以下兩條語句DBCC FREEPROCCACHE DBCC DROPCLEANBUFFERS來自http://blog.sqlauthority.com/2007/03/23/sql-server-stored-procedure-clean-cache-and-clean-buffer/ –

3

有時ALTER PROCEDURE不會像更新程序那樣更新它。

我不知道如何重現這個或者是什麼原因,但是它發生在我身上的一些(很少)次。

嘗試做DROP PROCEDURE + CREATE PROCEDURE而不是確保新版本的程序已妥善保存。

+1

嗨w0lf。我不認爲你的解釋是完全正確的:事實上,程序更新完好,它只是SQL Server Management Studio(和底層的調試工具),出於某種原因,它並沒有意識到這一點。但是,如果我執行'DROP' +'CREATE'而不是'ALTER',它就會按預期工作。 – rsenna

+0

@rsenna你說得對。前段時間我有這個奇怪的問題,不記得所有的細節。 – GolfWolf

6

我剛剛重啓SSMS,爲我解決了這個問題。

順便說一句,我在與SQL Server Management Studio中2012

6

使用

DBCC FREEPROCCACHE

DBCC DROPCLEANBUFFERS

由於由於戴夫皮納爾(誰知道一切事物的SQL Server !!)Dave Pinal Knows All!