
SELECT * FROM inserted, ולהריץ את השורה הזאת בזמן הדיבאג. התוצאה מופיעה בחלון התוצאות של השאילתה הראשית.הטקסט המלא של הדקות הראשונות בהרצאה «SQL Debugger» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
שלום לכולם בהרצאה הזאת אנחנו נלמד על דיבאגר ב-SQL אנחנו נראה איך לעבור בדיבאג שורה שורה אז בואו נתחיל מזה שיש לנו פה סקריפט על המסך איזושהי שאילתה שהכנתי שעושה סלקטים ואפדייטים ואנחנו רוצים למצוא איפה יש איזושהי בעיה נניח
משהו לא עובד כמו שרצינו אז אנחנו לוחצים דיבאג דיבאג זה אומר לעבור שורה שורה בקוד זה אומר לעבור שורה שורה בחוקות ויש לנו סטפ אינטו זה לעבור ממש שורה שורה בסטופ אובר לדלג על פונקציות.
בוא נתחיל מסטפ אינטו. סטפ אינטו מתחיל לעבור שורה שורה ונניח אנחנו שורה ראשונה לא רוצים לדבק אז אנחנו אומרים לו תרוץ מהר עד השורה האדומה עד הברק פוינט.
עד השורה האדומה אתה רץ מהר ואחרי זה אתה עוצר. הנה הוא מתחיל לרוץ אנחנו לוחצים לו פליי ירוק הוא רץ ועוצר לנו בשורה אדומה, זה נקרא break point.
עכשיו עשינו פקודת סלקט, הנה יצא לנו פה שהמשקיע הראשון נקרא best beverages, אנחנו רוצים לעשות update, אנחנו לוחצים פה F11, F11, הופה, עוד F11, הנה התחלף, ראינו שהפקודה התבצעה כמו שצריך.
עכשיו יש לנו update על employees, עושים update על employees, מחליפים שם משפחה, מ-king2 ל-king ואנחנו רוצים לעשות step into להיכנס לתוך ה-update ותראו מה אנחנו מגלים שהוא קפץ לנו לתוך טריגר על הטבלה היה טריגר והוא קפץ לתוכו תראו איזה יופי זאת אומרת שאם אנחנו נעשה פה view solution explorer object explorer הנה ה-object
explorer שלנו משום מה הוא נהיה לנו ממש גדול שנייה הנה הוא ככה אנחנו רגילים לראות אותו על טבלת אימפלואיז אתם רואים שיש פה טריגר והוא נכנס לנו לתוך הטריגר ושימו לב אנחנו נמצאים בזמן הדיבאג כן?
אז אנחנו בתוך הטריגר הזה הבנתם אני לוחץ F11 עוד פעם ואנחנו עוברים שורה שורה ובודקים מה קורה בתוך הטריגר איך הוא עובד ואתם יכולים לראות שאנחנו בתוך טריגר מעדכנים עמודה ומה יש לנו פה יש לנו לוקלס מה זה לוקלס?
לוקלס אנחנו רואים את המשתנים שיש לי בטריגר יש לי Employee ID שהוא שווה ל-7, יש לי עכשיו עוד איזשהו משתנה ואנחנו יכולים לראות שאיך הוא מקבל, שימו לב לפה, תסתכלו לפה, ראיתם? קיבל 7 ו-7 ועכשיו אני רואה If ואני משווה ביניהם, אומר Y, הכל בסדר.
עכשיו, מה קורה אם אני רוצה לראות טבלה? אם אני רוצה לראות טבלה אני צריך לעשות Select, להדפיס אותה. לדוגמה, אני רוצה לראות טבלה, בואו נעצור שנייה את העדכון, אני עושה Stop לטריגר, רוצה להראות לכם איך רואים טבלה, נניח נעשה פה best, תראו אם אני רוצה לראות באמצע טריגר
טבלה נניח של inserted לראות מה יש בתוך טבלה אין לי שום דרך חוץ מטריק אחד חוץ מטריק אחד דיבאג זה אני סתם כותב לעצמי שימו לב מה הטריק אני כותב סלקט כוכבית from inserted ועכשיו כשאני רץ עד לכאן ברצף שימו לב אני מתחיל לרוץ בדיבאג עד לכאן ברצף את זה אני יכול כבר להרביא, פה אני אומר לו תרוץ מהר עד לכאן, הופה, רץ מהר עד לכאן, אני עושה F11,
נכנס לתוך שורה, שימו לב, יפה, בואו נראה מה אנחנו רואים, ואנחנו, מה אנחנו רואים פה, אנחנו רואים, דת סלקט הייתה צריכה להתבצע כאן, ואנחנו לא רואים שהתבצעה, מה זה אומר? זה אומר שצריך לעצור את זה, לסגור את הממשק הגרפי הזה, לעצור את הזה ולהריץ אותה עוד פעם, להריץ עוד
פעם, ללחוץ סטפ אינטו, סטפ אינטו. אתם רואים, הוא לא ביצע לי את הפקודה. יפה מאוד, אני עושה קונטרול A על ה-Tree, קונטרול C, פותח קווירי חדש, עוצר את השאילתה, עוצר אותה, פותח שאילתה חדשה לגמרי, עושה פה אלטר, ורוצה לעשות לכם פה דיבאק.
דילקט, כוכבית, פרום, אינסרטד. זו הדרך היחידה לראות מה יש לנו בתוך אינסרטד. אני עושה אלתר טריגר, הוא לא רוצה להראות לי למה הוא לא רוצה first name.i.last name.i.employeeid אוקיי, את זה הוא ירצה לעשות לי, יפה מאוד בוא ננסה סוגרים את זה מריצים עוד פעם דיבאג דיבאג ניכנס לתוך זה וזה מה שרציתי להראות לכם זו השיטה
היחידה להדפיס טבלה אי אפשר סתם לראות מה יש בטבלה כי הוא לא יודע לעשות עליה quick watch אם אתם עושים quick watch, הוא cannot be evaluated.
אתם רואים, הוא לא יודע להראות לכם טבלאות. זאת אומרת, גם פה הוא לא יודע להראות לכם טבלאות. הדרך היחידה זה לעשות Select. ברגע שאתם עושים Select, תראו איפה זה מודפס.
זה מודפס כאן למטה.