Publikoval Michal Kočí dňa 11.9.2006 o 01:43 v kategórii SQL
Pod SQL Serverom 2000 aj 2005 sa dá debugovať (ladiť) uložená procedúra rovnako, ako sa vo Visual Studiu dá debugovať programový kód. Nieked, keď ste v koncom sa Vám to isto zíde. Navyše, ak ste debugovali procedúry pod SQL Serverom 2000 a boli zvyknutý debugging volať z kontexového menu aplikácie, v ktorej zvyknete tvoriť SQL príkazy (v SQL Servery 2000 je to Query Analyzer, v SQL Servery 2005 je to Management Studio) - túto voľbu tu už v budete hľadát márne. Kde teda debugging nájdete?
Pri debuggingu môžete ľadiť uloženú T-SQL procedúru, krokovať ju, pridávať si breakpointy či sledovať hodnoty v premenných. Aby ste mohli debugovať procedúru, musíte ju mať samozrejme vytvorenú, tak si môžete napríklad v databáze Northwind vytvoriť nasledovnu:
create procedure TestDebug
(
@Number1 int,
@Number2 int,
@Result int output
)
as
begin
declare @Sum int
declare @Sum2 int
set @Sum = @Number1 + @Number2
set @Sum2 = @Sum * @Sum
set @Result = @Sum2 - @Sum
end
V SQL Servery 2000 sa debugging spúšťa z kontektového menu v SQL Query Analyzerovi. Nastavíte sa na uložený procedúru a v kontextovom menu vyberiete položku Debug....
Následne sa Vám zobrazí okno, kde zadávate hodnotu jednotlivým parametrom procedúry:
Ak by ste nezadali hodnotu parametru @Result, potom by sa Vám síce debugovacie okno otvorili, ale ľadiť by ste nemohli - iba by sa Vám zobrazila chybová hláška upozorľujúca Vás na fakt, že musíte zadať hodnotu aj tomuto parametru. Ak hodnotu nechcete zadať, stačí zaškrtnúť u parametra voľbu Set to null:
Následne sa Vám zobrazí okno ľadenia, kde môžete vykonávať samotné ľadiete podľa Vašej ľubovôle:
Logicky sa dá očakávať, že debugovanie procedúry na SQL Servery 2005 bude odbobné a preto keďže náhradou za Query Analyzer je u SQL Servera 2005 SQL Server Management Studio, hľadať túto možnosť budete pravdepodobne tam. Márne. Autori sa zrejme rozhodli, že Management Studio bude slúžiť len na správu servera a debugovanie presunuli do Visual Studia. Toto je ďaľší dôvod, prečo mne osobne Managment Studio vadí, ale čo už.
Preto si spustite Visual Studio (môže byť aj SQL Server Business Intelligence Development Studio) a otvorte si Server Explorer (View -> Server Explorer). Nájdite si uloženú procedúru, ktorú chcete debugovať a z kontextového menu vyberte voľbu Step Into Stored Procedure:
Zobrazí sa Vám okno pre zadanie hodnôt parametrov, tieto vyplňte a u parametra @Result môžete vybrať hodnotu NULL:
Finálne sa Vám zobrazí debugovacie okno:
Takže, nezostáva Vám už len popriať čo najmenej situácií, kedy budete musieť siahnuť k ľadeniu uloženej procedúry.
Ak nechceš premeškať príspevky ako je tento, sleduj ma na Twitteri, alebo ak máš RSS čítačku, môžeš sledovať môj RSS kanál.