2010-01-06 12 views
33

Gibt es eine Möglichkeit, in Code der gespeicherten Prozedur in SQL Server Management Studio zu gehen? Ich weiß, das ist mit Visual Studio möglich, aber ich bin auf der Suche nach einer zuverlässigen Debugging-Lösung aus Management StudioDebuggen gespeicherter Prozeduren in Management Studio

+2

Nicht, dass ich in SSMS 2005 bewusst bin - Sie sind zu PRINT-Anweisungen und konditionalen Logik/Flusskontrolle –

Antwort

22

Nur mit SQL 2008 und SSMS 2008. Wählen Sie aus dem Menü Debug/Start Debugging oder drücken Sie Alt + F5 und wird Starten Sie den T-SQL-Debugger Schritt für Schritt.

Im Jahr 2005 ist die einzige Möglichkeit, Profiler und Monitor für die SP:StmtCompleted Ereignis, das nicht genau Debugger Schritt für Schritt, aber zumindest Sie den Ausführungsfluss zu sehen. Natürlich nicht auf einer Produktionsmaschine zu machen.

+1

Ich bekomme den Fehler "Debugger konnte nicht gestartet werden" Die EXECUTE-Berechtigung wurde für das Objekt 'sp_enable_sql_debug' verweigert .. auf SSMS 2008 – Nick

+2

>> Um auf SQL Server 2005 zu debuggen, müssen sowohl das Konto, das Visual Studio ausführt, als auch das Konto, das für die Verbindung mit SQL Server verwendet wird, Mitglieder der Rolle sysadmin sein. http://msdn.microsoft.com/en-us/library/ms241735(VS.80).aspx –

+7

Und es ist ihnen nie in den Sinn gekommen, dass Leute, die keine sys-Admins sind, möglicherweise sps debuggen müssen? – HLGEM

4

Die Fähigkeit sprocs zu debuggen, die in SQL Server 2000 in Query Analyzer nicht in SQL Server 2005. Microsoft Sie diese Fehler erkannt und setzt die Funktionalität wieder in in SQL Server 2008

In SSMS 2008 gesetzt wurde Sie können den Debugger starten, indem Sie entweder auf die Schaltfläche zum Debuggen in der Symbolleiste klicken oder ALT + F5 drücken.

Leider läuft das Ausführen von SSMS 2008 gegen eine 2005-Datenbank nicht zum Debuggen, also müssen Sie bei Visual Studio bleiben.

3

Achten Sie auf das Debuggen gespeicherter Prozeduren mit Visual Studio. Die Art, wie dies implementiert wird, ist eine unglaubliche Menge an Sperren, so dass Sie dies nie auf einem Produktionssystem tun sollten.

2

Ja, in SSMS 2008 können Sie definitiv in T-SQL-Code (Code-Block, gespeicherte Funktion, gespeicherte Prozedur) einsteigen und es debuggen.

Sehen Sie diesen ausgezeichneten Artikel Management Studio Improvements in SQL Server 2008 für Details - es befasst sich auch mit Debugging (gegen Ende des Artikels).

+1

Ich bekomme den Fehler "Debugger konnte nicht gestartet werden" Die EXECUTE-Berechtigung wurde für das Objekt 'sp_enable_sql_debug' verweigert. – Nick

+0

Nick muss ein Mitglied der sysadmin-Rolle sein. – tbone

19

ich eine ziemlich detaillierte Blog-Post über sie hier geschrieben haben:

http://www.diaryofaninja.com/blog/2010/11/23/debugging-sql-queries-function-amp-stored-procedures-with-sql-management-studio

Grundsätzlich ist der Kern von ihm ist, dass Sie Ihre SQL-Abfrage geben Sie Ihre gespeicherte Prozedur auszuführen, und statt F5 zu drücken oder wenn Sie den Ausruf drücken, drücken Sie die Wiedergabetaste und verwenden Sie F10 und F11, um durch Ihre gespeicherten Prozeduren zu gehen und diese zu betreten.

Dies ist sehr praktisch, aber niemand scheint es zu benutzen.

1

Bitte beachten Sie beim Debuggen von Remote-Instanzen mit SSMS, dass Ihre Server- und Client-Firewall sqlservr.exe bzw. ssms.exe zusammen mit TCP-Port 135 zulassen müssen. Die Client-Firewall führte in meinem Fall zu einem "Timeout" abgelaufen "beim Debuggen.

+0

Die MS-Artikel zum Erstellen von Firewall-Regeln für das Remote-Debuggen erwähnen den explizit öffnenden Port 135 nicht. Ist das eigentlich eine Voraussetzung? Wenn ja, nur auf dem Client oder beiden Clients/Servern? – PTansey

+0

@PTansey [Dieser Artikel] (https://msdn.microsoft.com/en-us/library/cc646023.aspx) besagt, dass Sie TCP 135 öffnen sollten, wenn Sie versuchen, von Visual Studio (devenv.exe) oder Management Studio (ssms.exe). Dies sollte auf dem Client erfolgen. –

Verwandte Themen