SQLShack
a hibakeresés minden szoftverfolyamat egyik legfontosabb, de fájdalmas része. Néhány hiba megtalálásához lépésről lépésre kell futtatnia a kódot, hogy megnézze, a kód melyik része felelős a hibáért. Ezt hívják futásidejű hibakeresésnek.
szerencsére az SQL Server Management Studio (SSMS) automatikus hibakeresési képességekkel rendelkezik, amelyek segítenek a fejlesztőknek a szkriptek hibakeresésében. Ebben a cikkben gyakorlatilag elmagyarázzuk, hogy az SSMS hogyan használható az SQL Server tárolt eljárásainak hibakeresésére egy nagyon egyszerű példa segítségével.
Example
példánkban egy “spShowOddNumbers” tárolt eljárást fogunk használni, amely két számot vesz paraméterként, és kiírja az összes páratlan számot a két megadott szám közé.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
eljárás létrehozása spShowOddNumbers
@LowerRange INT,
@UpperRange INT
AS
BEGIN
WHILE(@LowerRange < @UpperRange)
BEGIN
if(@lowerrange%2 != 0)
BEGIN
PRINT @LowerRange
END
SET @LowerRange = @LowerRange + 1
END
print ‘nyomtatott páratlan számok között’ + RTRIM(@Lowerrange) + ‘ és ‘ + RTRIM(@UpperRange)
vége
|
az SQL Server tárolt eljárását meghívó parancsfájl:
1
2
3
4
5
6
7
8
9
|
állapítsa @lowerrange INT
állítsa @lowerrange = 5
állapítsa @ upperrange INT
állítsa @upperrange = 20
EXEC spShowOddNumbers @lowerrange, @ upperrange
dobja PROC spShowOddNumbers
|
hibakeresési lehetőségek
az SQL Server Management Studio alkalmazásban számos hibakeresési lehetőség áll rendelkezésre.
hibakeresés megkezdése
az SQL server által tárolt eljárás hibakeresésének megkezdéséhez nyomja meg az ALT + F5 billentyűt, vagy lépjen a Debug -> hibakeresés megkezdése menüpontra, az alábbi ábra szerint:
miután elindította a hibakeresőt abban az ablakban, ahová az SQL Server tárolt eljárását hívja, látni fogja, hogy a lekérdezési ablak elején sárga kurzor jelenik meg, az alábbiak szerint:
most, hogy elkezdte a hibakeresést, átlépheti a kódot.
lépjünk át a szkripten
három lehetőség van a kód átlépésére: 1) lépjünk át, 2) lépjünk be és 3) lépjünk ki. Ezeket a lehetőségeket a gombra kattintva láthatja hibakeresés az alábbi képernyőképen látható módon:
- Step Over (F 10)
Step Over egyszerűen mozgatja a kurzort a végrehajtható szkript következő sorába. Például, ha a hibakereső a következő helyen van a szkriptben:
a Lépj túl gombra kattintva vagy az F10 megnyomásával egyszerűen a kurzort a következő sorra mozgatja:
- lépj be (F 11)
ez az egyik legfontosabb és leghasznosabb hibakeresési funkció. Lépj be lehetővé teszi, hogy betörjön a tárolt eljárás script a script, amely felhívja, hogy a tárolt eljárás.
fontos megemlíteni, hogy a Step into olyan művek, mint a Step Over. Ha a végrehajtandó parancsfájl sora nem tartalmaz hívást az SQL Server tárolt eljárására.
például, ha belép a:
1SET @ upperrange = 20a hibakereső egyszerűen áthelyezi a vezérlőt a következő sorra:
1EXEC spShowOddNumbers @lowerrange, @ upperrangea fenti sor tartalmazza az SQL Server tárolt eljárásának hívását. Most, ha belépsz a szkript ezen sorába, a hibakereső az ‘spShowOddNumbers’ tárolt eljárás szkriptjéhez vezet, az alábbi ábrán látható módon.
- Step Out (Shift + F11)
a Step Out a Step in ellentéte. Ha az SQL Server tárolt eljárásán belül van, és vissza szeretne térni a tárolt eljárást meghívó parancsfájlhoz, használhatja a kilépést. Például, ha rákattint a lépésre:
1WHILE (@LowerRange & lt; @ UpperRange)a hibakereső visszatér a függvényt meghívó szkripthez, azaz
Futtatás a kurzor
hibakeresési lehetőségek végre egy sort egy időben. Ha van egy hurok vagy egy hosszú kóddarab, amelyet a hibakeresőnek át kell hagynia, használhatja a ‘Futtatás a Kurzorhoz’ opciót.
1
|
WHILE (@LowerRange < @UpperRange)
|
például, ha a kurzor az SQL Server tárolt eljárásának következő sorában van, és át akarja hagyni a ciklust, és a ciklus után a nyomtatási utasításhoz szeretne menni. Egyszerűen megy a nyomtatási utasítást, majd kattintson a “Futtatás kurzor” az alábbiak szerint:
a ciklus kihagyásra kerül, és a kurzor most a nyomtatási utasításra mutat.
a helyi ablak
a helyi ablak segít nyomon követni a változók értékeit a szkriptben. Ebben a példában két változó van @LowerRange és @UpperRange a szkriptünkben. Az SQL Server tárolt eljárásának while ciklusának kezdetén a @LowerRange változó értéke 5, míg a @UpperRange változó 20, amint az az alábbi ábrán látható:
miután végrehajtotta a ciklust, majd ellenőrizte a változók értékét, látni fogja, hogy a @LowerRange és a @UpperRange változók egyaránt 20 értéket mutatnak. A Locals ablak megjeleníti a változó nevét, értékét és típusát. A helyiek ablak segítségével nagyon egyszerű, hogy nyomon követheti a változásokat az értékek a változók, amit elért a script.
ha véletlenül bezárja a helyiek ablakot, és vissza akarja hozni, egyszerűen menjen a Debug – > Windows – > helyiek az alábbiak szerint:
a Figyelőablak
a Figyelőablak nagyon hasonlít a helyiek ablakához. Az egyetlen különbség az, hogy hozzáadhat vagy eltávolíthat változókat az Óraablakból, ami hasznos lehet, ha nagy számú változóval dolgozik nagyobb szkriptekben.
változó hozzáadásához az Óraablakhoz egyszerűen válassza ki a változót, kattintson a jobb gombbal, majd válassza az “óra hozzáadása” lehetőséget, amint az a következő képernyőképen látható:
Hasonlóképpen, egy változó eltávolításához kattintson a jobb gombbal a változó nevére az óra ablakban, majd kattintson az “óra törlése” gombra az opciók listájából. Az alábbiak szerint:
a hívás verem
a hívás verem, ahogy a neve is sugallja, megjeleníti az aktuális pontig végrehajtott hívások veremét.
a fenti ábrán látható Hívásköteg első sora azt mondja nekünk, hogy jelenleg az spShowOddNumbers tárolt eljárás végrehajtása zajlik, és abban a pillanatban a hibakereső a tárolt eljárást tartalmazó fájl 14.sorában van. A második sor azt jelzi, hogy ezt a tárolt eljárást az sqlquery2 7.sorában lévő szkriptből hívták meg.sql fájl.
az azonnali ablak
az azonnali ablak hasonló a konzol ablakához. Például matematikai műveleteket hajthat végre az azonnali ablakban, ellenőrizheti a változók értékeit stb. A következő képernyőkép egy azonnali ablak példáját tartalmazza.
megjegyzés: a cls parancs törli az azonnali ablakot!
töréspontok
a töréspont az egyik leggyakrabban használt hibakereső eszköz bármely programozási nyelvben. A Breakpoint segítségével megadhatja azt a helyet, ahol a hibakereső leállítja a kód végrehajtását. Különösen akkor hasznosak, ha nem akarja hibakeresni az összes kódsort, inkább a változók állapotát szeretné ellenőrizni a kód meghatározott helyein.
töréspont beírásához egyszerűen kattintson a jobb gombbal a szkript sorának bal oldalán található szürke területre, ahová a töréspontot szeretné tenni. Alternatív megoldásként az F9 megnyomásával automatikusan töréspontot ad a vonalhoz. Az F9 billentyű újbóli megnyomása eltávolítja a töréspontot.
a fenti ábrán látható, hogy egy töréspont került hozzáadásra az SQL Server “spShowOddNumbers” tárolt eljárását végrehajtó sorhoz. Most, hibakeresés ezt a forgatókönyvet. Látni fogja, hogy a hibakereső a szkript első sorában indul.
most nyomja meg az ALT + F5 billentyűt, vagy lépjen újra a hibakeresés menübe, majd kattintson a hibakeresés -> Folytatás gombra. Látni fogja, hogy a következő sor hibakeresése helyett a hibakereső egyenesen a legközelebbi vonalra ugrik a törésponttal.
feltételes töréspontokat is létrehozhat. A feltételes töréspontokat csak meghatározott feltételek teljesülése esetén érik el.
a töréspont feltételének megadásához egyszerűen kattintson a jobb gombbal a töréspontra, majd válassza az alábbi ábrán látható “feltételek” lehetőséget:
új ablak nyílik meg, ahol megadhatja a töréspont elérése előtt teljesítendő feltételeket. Ha azt szeretné, hogy ezt a töréspontot csak akkor érje el, ha a @LowerRange nagyobb, mint 15, akkor ezt feltételként adhatja hozzá, amint az az alábbi képen látható:
feltételhez következtetés
ebben a cikkben azt tárgyaltuk, hogy a Microsoft SQL Server Management Studio milyen különböző lehetőségeket biztosít egy szkript vagy tárolt eljárás hibakereséséhez az SQL Server rendszerben.
egyéb nagy cikkek Ben
hogyan kell használni az SQL Server beépített funkciók és hozzon létre a felhasználó által definiált skalár funkciók
hogyan kell használni ablak funkciók
hibakeresés tárolt eljárások SQL Server Management Studio (SSMS)
- szerző
- Legutóbbi hozzászólások
ben Richardson összes hozzászólásának megtekintése
- munka a Power BI jelentés témáival-február 25, 2021
- Power BI: Vízesésdiagramok és kombinált látványelemek-január 19, 2021
- Power BI: Feltételes formázás és adatszínek működés közben-január 14, 2021