שימוש יעיל ב-Table Valued Functions

יום שני, אפריל 30, 2012

כששולפים מטבלה ידוע שיש להיזהר בשימוש ב-Scalar Functions הכוללות פניה נוספת לְטבלה מכיוון שהפניה לטבלה השנייה מתבצעת בנפרד לכל שורה מהטבלה הראשונה, אך מה קורה כשמבצעים Join בין טבלה לבין Table Valued Function? האם גם במקרה זה תתבצע פניה נפרדת לכל שורה? לאחר שבפוסט הקודם הראיתי כיצד ניתן לעקוב אחר ריצות של פונקציות, ננצל את הפתרון משם כדי לבדוק כמה פעמים הפונקציה מופעלת. ניצור Table Valued Function שמקבלת פרמטר ומחזירה אותו בתור טבלה, שימוש מגוחך כמובן לצורך הבדיקה בלבד; ואת הפרמטר נפנה לקובץ טקסט לצורך המעקב (בכל הפעלה יופנה הפרמטר לקובץ): ...
אין תגובות

פונקציה המחזירה מספר ערכים

יום שבת, פברואר 12, 2011

אני מעוניין בפונקציה שתקבל כפרמטר תאריך לידה, ותחזיר את הגיל (מספר), יום הלידה בשבוע (טקסט), והיום הראשון בשנת הלידה (תאריך). כיצד נעשה זאת? פתרון- באמצעות Table-Valued Function שתחזיר טבלה בת רשומה אחת: Create Function dbo.MyFunc(@D DateTime) Returns Table As Return (Select DateDiff(Year,@D,GetDate()) Age, DateAdd(Day,-DatePart(DayOfYear,@D)+1,@D) YearBegin, ...
אין תגובות