[SQL Server] Chercher une procédure stockée dans toutes les BD sur un serveur lié

  • Imprimer

-- =============================================

-- Author:  Zouhaier KHARROUBI

-- Create date: 04/01/2019

-- Description: Chercher une procédure stockée dans toutes les BD sur un serveur lié

-- =============================================

DECLARE @Requete NVARCHAR(MAX)

SELECT @Requete=N'

IF EXISTS(SELECT * FROM tempdb..sysobjects WHERE id = object_id(N''[tempdb]..[#Resultat]''))

BEGIN

DROP TABLE #Resultat

END

CREATE TABLE #Resultat

(

BaseDonnees VARCHAR(150) NULL

,ROUTINE_NAME VARCHAR(150) NULL

)

EXEC sp_MSForEachDB

''USE ?;

INSERT INTO #Resultat SELECT DB_NAME() AS BaseDonnees, ROUTINE_NAME

    FROM INFORMATION_SCHEMA.ROUTINES

    WHERE ROUTINE_DEFINITION LIKE ''''%MaProcedure%''''

    AND ROUTINE_TYPE = ''''PROCEDURE''''''

SELECT * FROM #Resultat

DROP TABLE #Resultat'

EXEC(@Requete) AT [MonServeurLie]