11. januar 2011 - 17:41Der er
5 kommentarer og 1 løsning
debug stored procedure
Jeg har en stump stored procedure kode som jeg plejer at udføre ved at paste den ind i min query-analyser.
Og det plejer at virke, men nu er det holdt op med at virke - der bliver i hvert fald ikke udført noget kode.
Da jeg ikke kan finde fejlen (de enkelte sql-sætninger virker enkeltvis) tænkte jeg om der ikke var nogen herinde der viste hvordan man debugger i en stored procedure? - eller om man på en eller anden måde kan skrive noget så man kan se hvad ens variabler indeholder undervej?
Jeg ved ikke lige hvad du kalder "output"-vinduet i query-analyser...
Min kode ser ca. sådan ud
declare @UL varchar(8); declare @SI varchar(20); DECLARE ul_list CURSOR FOR select a, b from tabel1 INNER JOIN tabel2 ON ... INNER JOIN tabel3 ON ... where ... IN ('XXX') open ul_list fetch next from ul_list into @UL, @SI WHILE @@FETCH_STATUS = 0 BEGIN --while
if @SI='XXX' begin -- if insert into TABEL4(...) values(@UL,...,@SI); insert into tabel5(...) VALUES(@ul,...,@SI); end--if fetch next from ul_list into @UL, @SI END --while --for Close ul_list DEALLOCATE ul_list
Mine inserts bliver ikke udført, men hvis jeg nøjes med at køre en af insertsætningerne (med værdier i @UL og @SI) virker det.
Der er altså noget der gør at min while ikke bliver udført.
Så jeg kunne godt tænke mig f.eks at vide om ul_list var tom før min whilesætning begyndte -- kan man finde ud af det?
Hvis det er pga ændre i databasen, burde du få en fejl når du prøver både at editere og kører din procedure. Vel og mærket hvis det er pga column names har ændre sig eller table names
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.