Visual Studio 2005 umożliwia śledzenie procedur składowanych (po ludzku: Stored Procedures) w SQL Server 2005. Fakt. Mówi się o tym, pisze się o tym, ale nie wspomina się, że cecha ta jest domyślnie wyłączona, nawet w domyślnej instalacji VS z SQL Express. Wiedza o tym, jak owo śledzenie aktywować jest rozbita po kilku artykułach MSDN, więc postaram się ją skonsolidować w jednym miejscu.
Krok 1: Upewniamy się, że zainstalowany jest Remote Debugger dla VS 2005. Jeśli ktoś wykonywał standardową instalację VS, to nie ma się czym martwić w tym miejscu. W przeciwnym wypadku lepiej sprawdzić i doinstalować. Visual Studio Remote Debugger znajduje się domyślnie w Menu Start --> Microsoft Visual Studio 2005 --> Visual Studio Tools.
Krok 2: Na komputerze z instancją serwera instalujemy debugger dla serwera. Jest to plik <sql server install dir>\90\Shared\<LCID>\rdbgsetup.exe.
Krok 2a: Na komputerze klienta udostępniamy port TCP 135 w firewallu i dodajemy devenv.exe do listy aplikacji uprawnionych do dostępu do sieci. Analogicznie na komputerze serwera włączamy porty TCP 135, TCP 139, TCP 445, UDP 137, UDP 138 i dodajemy sqlserv.exe do listy aplikacji uprawnionych do dostępu do sieci. Cały ten krok można sobie darować, jeśli serwer zainstalowany jest na tym samym komputerze co VS.
Krok 3: Ustawiamy uprawnienia na serwerze. Po pierwsze – nigdzie się o tym nie wspomina, ale debugger działa tylko w trybie Windows Authentication. Najlepiej będzie więc utworzyć login w SQL Serwerze o takiej samej nazwie jak nasz użytkownik Windows i przydzielić mu rolę sysadmina. Następnie, w bazie, w której będziemy uruchamiać procedurę, należy utworzyć użytkownika i zmapować go z właśnie stworzonym loginem. Dla użytkownika tego przydzielany rolę db_owner.
I tyle. Niby proste, ale jednak trochę skomplikowane. Tekst powyższy tyczy się procedur T-SQL-owych, ale na tak ustawiony serwerze można też bezproblemowo śledzić kod CLR (po włączeniu śledzenia CLR).