2012-08-09 109 views
0

我正在尋找一種有效的方法來調試複雜和冗長的T-SQL。我已經找到了這個http://msdn.microsoft.com/en-us/library/ms241871%28v=vs.80%29.aspx的MSDN建議,但是當我設置斷點時,它會回顯「斷點當前不會被命中,沒有符號被加載到這個文檔中。」配置設置爲調試而不是發佈。我正在運行Visual Studio 2010專業版。TSQL調試問題

+0

一個選擇是使用sql profiler。 – JonH 2012-08-09 16:03:36

+0

一個方便的技術是在將代碼或其中的一小部分包裝在'BEGIN TRANSACTION' /'ROLLBACK TRANSACTION'中之後,在SSMS中運行代碼或其部分。可能仍有副作用,例如身份值可能被跳過。這不應該是一個問題。 – HABO 2012-08-09 17:52:21

回答

0

您可以使用Management Studio來調試您的T-SQL腳本,除非它涉及自定義CLR組件。不要使用Visual Studio來附加到sqlservr.exe。

+0

這不需要SA權限嗎? – PMOrion 2012-08-09 21:49:45

+0

你足夠強大,可以搞砸sqlservr.exe,但你擔心SA權限? – 2012-08-09 22:13:23

+0

弄亂Sqlservr.exe?我只是簡單地遵循MSDN發佈附加一個進程,並使用VS調試器;從進程ID的運行列表中選擇它。我沒有SA管理權限,但仍需要調試我正在構建的T-Sql。 – PMOrion 2012-08-15 14:50:50

0

這是一種非最佳建議,但可能有幫助。

在PROC頂部聲明一個@Debug BIT參數,將其設置爲1,然後添加一些

IF @Debug = 1 
    SELECT 'Debug statement blahblah' //or report something useful for debugging 

這確實有些改變PROC但是這種技術已經在過去有用,特別是冗長而複雜的特效。