Mon objectif est de trouver les procédures stockées affectées sur plusieurs bases de données lorsqu'une table ou une vue est mise à jour. Je travaille dans un environnement avec plusieurs bases de données où ces procédures stockées peuvent exister. Voici une requête qui peut faire ce que je veux pour une base de données.Peut et comment utiliser plusieurs bases de données en même temps dans SQL avec l'instruction USE?
Comment puis-je obtenir les résultats sans avoir à modifier l'instruction USE pour DatabaseB, DatabaseC, etc. ou de longues requêtes impliquant UNIONs?
USE DatabaseA
SELECT
O.name
, O.type_desc
, M.definition
FROM sys.sql_modules M
LEFT JOIN sys.objects O
ON O.object_id = M.object_id
WHERE 1=1
AND definition LIKE '%Error%'
J'ai joué avec la boucle, mais en vain.
DECLARE name_Cursor CURSOR FOR
SELECT name
FROM master.dbo.sysdatabases
OPEN name_Cursor;
FETCH NEXT FROM name_Cursor;
WHILE @@FETCH_STATUS = 0
BEGIN
FETCH NEXT FROM name_Cursor;
END;
CLOSE name_Cursor;
DEALLOCATE name_Cursor;
GO