Rechercher une chaîne de caractère dans le code des modules SQL sous SQL Server 2005 et 2008

Il arrive parfois de vouloir chercher un bout de code dans toutes les procédures stockées d’une base de données, comme par exemple le nom d’une colonne.

Voyons comment réaliser cela avec une simple requête …

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
---------------------------------
-- Nicolas SOUQUET - 18/05/2009 -
---------------------------------
/*
Valable pour les objets dont le type est :
- Procédure stockée SQL (P)
- Procédure de filtre de réplication (RF)
- Vues (V)
- Déclencheur DML SQL (TR)
- Fonction scalaire (FN)
- Fonction table incluse SQL (IF)
- Fonction table SQL (TF)
- Règle (R)
*/
SELECT O.type_desc,
    O.name,
    O.create_date,
    O.modify_date,
    M.Definition
FROM sys.objects O
JOIN sys.sql_modules M ON M.object_id = O.object_id
WHERE O.name NOT LIKE 'dt%'
AND O.name NOT LIKE 'sys%'
--AND O.type = 'P' -- Filtre sur le type d'objet
AND M.Definition LIKE '%codeARechercher%'
ORDER BY O.Name

Laisser un commentaire