poniedziałek, 10 marca 2014

Szukanie procedury składowanej zawierającej ciąg znaków

Ostatnio zdarzyło mi się, że musiałem znaleźć wszystkie procedury składowane zawierające słowo "external". O tyle ważne, że w SQL Server 2012 jest to zarezerwowane słowo kluczowe a nasza baza danych, która wcześniej nie działała na SQL Server 2012 dość liberalnie podchodziła do użycia słowa "external" w procedurach składowanych m.in. nie zapisując nazwy tabeli o nazwie "external" w nawiasy kwadratowe. Czyli zamiast dbo.NazwaTabeli.[External] było dbo.NazwaTabeli.External. Przy takim zapisie program wywalał się wykonując procedurę składowaną na SQL Server 2012. 
Aby zatem znaleźć procedury składowane zawierające pewien ciąg znaków, można wykorzystać taki kod:

SELECT DISTINCT o.name AS Object_Name,o.type_desc
FROM sys.sql_modules m 
INNER JOIN sys.objects o 
ON m.object_id=o.object_id
WHERE m.definition Like '%external%'
order by Object_Name

Brak komentarzy:

Prześlij komentarz