לפני מספר חודשים כתבתי פוסט על דרכים לעיון בקוד של פרוצדורה (חוץ מאשר למצוא אותה בצד שמאל ב-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
יש להקליק על הסקריפט המבוקש בעמודת SQL והוא יפתח בחלון נפרד.
למה שלא תריץ את זה?
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