SQL 2005 – Recherche les procédures stockées pour le text (tout le text n'est pas recherché)

Les bits de code suivants ne semblent pas searchr toute la définition de routine.

Bloc de code 1:

select top 50 * from information_schema.routines where routine_definition like '%09/01/2008%' and specific_Name like '%NET' 

Bloc de code 2:

 SELECT ROUTINE_NAME, ROUTINE_DEFINITION FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_DEFINITION LIKE '%EffectiveDate%' AND ROUTINE_TYPE='PROCEDURE' and ROUTINE_NAME like '%NET' 

Je sais pertinemment que ces bits de SQL fonctionnent dans la plupart des circonstances. Le problème est le suivant: lorsque je lance ceci pour "EffectiveDate" qui est enterré à la ligne ~ 800 dans quelques procédures stockées, ces procédures stockées n'apparaissent jamais dans les résultats. C'est comme si "j'aime" ne search que si profondément.

Des conseils pour résoudre ce problème?

Je veux searchr la procédure stockée ENTIER pour le text spécifié.

Merci!

 select * FROM INFORMATION_SCHEMA.ROUTINES WHERE OBJECTPROPERTY(OBJECT_ID(SPECIFIC_NAME),'IsMSShipped') =0 and OBJECT_DEFINITION(OBJECT_ID(SPECIFIC_NAME)) like '%EffectiveDate%' AND ROUTINE_TYPE='PROCEDURE' AND ROUTINE_NAME like '%NET' 

Utilisez plutôt la définition d'object.

Juste pour clarifier pourquoi le text de la procédure est tronqué :

ROUTINE_DEFINITION nvarchar (4000)

Renvoie les premiers 4000 caractères du text de définition de la fonction ou de la procédure stockée si la fonction ou la procédure stockée n'est pas cryptée. Sinon, renvoie NULL.

Pour vous assurer que vous obtenez la définition complète, interrogez la fonction OBJECT_DEFINITION ou la colonne de définition dans la vue catalogue sys.sql_modules .

Voici une approche différente si vous searchz une fonctionnalité de search sur les bases de données du server SQL. Fondamentalement, l'outil de search disponible gratuitement à partir RedGate.

Gratuit 'Recherche' de Redgate

très rapide, direct et pratique Lien direct http://www.red-gate.com/products/SQL_Search/index.htm