« לכל הכתבות

חיפוש פרוצדורות על פי מחרוזת המופיעה בקוד שלהן

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

השאילתות הבאות (3 אפשרויות שעושות את אותו הדבר) יסייעו לך למצוא את כל הפרוצדורות שבהן יש מחרוזת מסויימת (Foo לצורך הדוגמה):

1. SELECT ROUTINE_NAME, ROUTINE_DEFINITION
FROM INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_DEFINITION LIKE '%Foo%'
AND ROUTINE_TYPE='PROCEDURE'

2. SELECT OBJECT_NAME(id)
FROM SYSCOMMENTS
WHERE [text] LIKE '%Foo%'
AND OBJECTPROPERTY(id, 'IsProcedure') = 1
GROUP BY OBJECT_NAME(id)

3. SELECT OBJECT_NAME(object_id)
FROM sys.sql_modules
WHERE OBJECTPROPERTY(object_id, 'IsProcedure') = 1
AND definition LIKE '%Foo%'

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

Leave a Reply

Your email address will not be published. Required fields are marked *