J'ai besoin de trouver une instruction d'insertion dans une table spécifique. Malheureusement, l'application n'est pas la mienne pour commencer, il y a plus de 100 procédures stockées dans la base de données, j'ai parcouru le code en écrivant chaque nom de procédure stockée du début à la fin de ce processus et je n'arrive toujours pas à le trouver. Je sais que le processus doit se produire parce qu'un autre processus qui en dépend fonctionne correctement. Je ne peux pas le trouver.SQL Server 2008 - Recherche de commandes/d'appels/de texte spécifiques
Y at-il une sorte de TSQL qui me permettrait d'effectuer des recherches dans plusieurs procédures stockées pour une ligne de texte spécifique ... plus spécifiquement « INSERT INTO [tablename] »
MISE À JOUR
J'ai essayé en utilisant:
SELECT routine_name, routine_type
FROM INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_DEFINITION LIKE '%INSERT INTO [tablename]%'
Tout droit, en remplaçant [nom_table] par le nom de ma table. Cela renvoie 0 lignes.
J'ai une procédure avec cette ligne exacte, et j'aurais supposé qu'elle aurait été retournée dans la requête ci-dessus, mais elle ne ramènerait rien du tout.
MISE À JOUR # 2
Après avoir utilisé l'outil de recherche sql Redgate (en utilisant INSERT INTO [tablename]) renvoie 1 sp, mais je suis toujours dans le déni que cela est correct en raison de certains des tsql (à la fin de la sp ses tables de chute qui sont encore dans la base de données ...) (c'est où mon in-expérience à sql brille à travers)
Je ne peux toujours pas trouver d'où il est appelé à partir de si ...
MISE À JOUR # 3
Je viens de faire une recherche sur la solution entière pour 'INSERT INTO [nom_table]' pour voir si elles n'ont peut-être PAS utilisé une procédure stockée pour cet appel, et rien ... ne l'a trouvé nulle part.
Vous devriez également vérifier les déclencheurs, cette insertion peut être effectuée à partir d'un déclencheur –
C'était l'une des premières choses que j'ai vérifiées ... il n'y a pas de déclencheurs. Probablement aurait dû mettre cela dans la question originale. – Patrick
Pour vérifier si le proc correct a inséré RAIESERROR statment dans le corps, recompilez proc et regardez si votre propre erreur apparaît lors de l'opération, c'est bien proc. N'oubliez pas de supprimer l'instruction raiserror lorsque le test est terminé. Description de l'instruction RAIESERROR sur MSDN: http://msdn.microsoft.com/en-us/library/ms178592.aspx – ThinkJet