2010-10-04 8 views
0

Nous avons modifié certaines fonctions de base que nous utilisons dans une application et j'essaie de trouver la meilleure façon de trouver et de remplacer la fonction existante par la nouvelle. Les entrées/sorties ne changent pas, juste le schéma et une partie de la logique interne.Script pour trouver et remplacer la fonction

Existe-t-il une bonne approche pour trouver les objets (vues, procédures, etc.) qui utilisent une fonction et la remplacer par une nouvelle?

Je pensais que je pourrais utiliser sys.syscomments pour trouver les objets puis faire un remplacement sur le texte de l'objet?

Toutes les suggestions seraient grandement appréciées.

Merci,

S

Répondre

0

Pour trouver des références:

SELECT OBJECT_NAME(m.object_id), 
     m.* 
    FROM SYS.SQL_MODULES m 
WHERE m.definition like N'%my_function_name%' 

SYSCOMMENTS et INFORMATION_SCHEMA.routines ont des colonnes nvarchar (4000). Donc, si "my_function_name" est utilisé à la position 3998, il ne sera pas trouvé. SYSCOMMENTS comporte plusieurs lignes, mais ROUTINES tronque.

Une fois que vous savez où les références sont, vous pouvez les mettre à jour ...

0

ou d'un script tout vers un fichier sql pour identifier les objets dépendants et faire le remplacer, si vous voulez. Il suffit de supprimer les objets dépendants et de les créer avec le script mis à jour.

Questions connexes