הבלוג של גרי רשף

17/02/2011

דרך נוחה לעיון בקוד של פרוצדורות ואובייקטים אחרים

Filed under: Uncategorized — תגיות: — גרי רשף @ 22:07

לפני מספר חודשים כתבתי פוסט על דרכים לעיון בקוד של פרוצדורה (חוץ מאשר למצוא אותה בצד שמאל ב-SSMS ולהציג את הסקריפט על ידי קליק ימני),
ומצאתי בינתיים עוד דרך נחמדה שמשלבת שליפה של כל האובייקטים (מה שמאפשר למיין ולסנן על פי הצורך) ומעבר נוח לתצוגה של הסריפט:

Select    id,

        Object_Name(id) Object,

        ObjectPropertyEx (id, N'BaseType') ObjectType,

        Cast((Select text As [text()]

            From        sys.syscomments T1

            Where        T1.ID=T.ID

            Order By colid

            For XML Path('')) As XML) SQL

From    sys.syscomments T

Group By ID

Order By ID;

Go

image

יש להקליק על הסקריפט המבוקש בעמודת SQL והוא יפתח בחלון נפרד.

מודעות פרסומת

2 תגובות »

  1. למה שלא תריץ את זה?
    SELECT object_id,
    OBJECT_NAME(object_id) as object,
    ObjectPropertyEx (object_id, N'BaseType') ObjectType,
    definition
    FROM sys.sql_modules
    ORDER BY object_id

    תגובה של יעקב — 23/02/2011 @ 11:05

    • קודם כל- תודה על המידע המועיל: לא הכרתי את האובייקט הזה,
      ובאמת ניתן להשתמש בו כדי לשלוף קודים של אובייקטים.

      יש בעייה עם תווים כדוגמת <> שבשליפה שלי מופיעים ב-XML באופן משובש (אולי בגלל שתווים אלו יש להם משמעות בתחימת תגים ב-XML), ואילו אצלך גורמים מפילים את השליפה.
      נסה ליצור View בסגנון של:
      Create View V_Tmp As Select * From sys.objects Where object_id<>0;
      ולאחר מכן שליפה:
      SELECT object_id,
      OBJECT_NAME(object_id) as object,
      ObjectPropertyEx (object_id, N'BaseType') ObjectType,
      Cast([definition] As XML) SQL
      FROM sys.sql_modules
      ORDER BY object;

      הערה: כדי שהצירוף <> יוצג בתגובה יש להכפיל אותו כך <<>>.

      תגובה של גרי רשף — 23/02/2011 @ 11:48


RSS feed for comments on this post. TrackBack URI

כתיבת תגובה

הזינו את פרטיכם בטופס, או לחצו על אחד מהאייקונים כדי להשתמש בחשבון קיים:

הלוגו של WordPress.com

אתה מגיב באמצעות חשבון WordPress.com שלך. לצאת מהמערכת / לשנות )

תמונת Twitter

אתה מגיב באמצעות חשבון Twitter שלך. לצאת מהמערכת / לשנות )

תמונת Facebook

אתה מגיב באמצעות חשבון Facebook שלך. לצאת מהמערכת / לשנות )

תמונת גוגל פלוס

אתה מגיב באמצעות חשבון Google+ שלך. לצאת מהמערכת / לשנות )

מתחבר ל-%s

יצירה של אתר חינמי או בלוג ב־WordPress.com.

%d בלוגרים אהבו את זה: