¿Cómo buscar una cadena de texto en todos los objetos de una base de datos SQL Server?
Utilizando las tablas de sistema, se puede hacer una búsqueda de una cadena de texto en todos los objetos de la base de datos, ya sean procedimientos almacenados, funciones, triggers...
Para ello se puede utilizar el siguiente script:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
USE <BASE_DATOS> | |
GO | |
SELECT | |
Object_name(so .parent_object_id) Parent_Name, | |
so .name [Objeto], | |
so .type_desc [Tipo], | |
so .create_date [Creado], | |
sm.definition [Texto] | |
FROM sys .objects so | |
INNER JOIN sys. sql_modules sm ON so.object_id = sm.object_id | |
WHERE | |
so .type = '<TIPO_OBJETO>' AND | |
CONVERT(VARCHAR(8000),sm.definition) LIKE '%<TEXTO_A_BUSCAR>%' |
Donde:
<BASE_DATOS>
es la base de datos sobre la que queremos hacer la búsqueda<TIPO_OBJETO>
es el tipo de objeto sobre el que se quiere hacer la búsqueda. Se puede comentar esa línea para que efectúe la búsqueda independientemente del tipo de objeto. En caso de especificarse, los tipos de objeto disponibles son:AF
: Aggregate function (CLR)C
: CHECK constraintD
: DEFAULT(constraint o stand-alone)F
: FOREIGN KEY constraintFN
: Función escalar SQLFS
: función escalar de ensamblado (CLR)FT
: función table-valued de ensamblado (CLR)IF
: función table-valued inline SQLIT
: tabla internaP
: procedimiento almacenado SQLPC
: procedimiento almacenado de ensamblado (CLR)PG
: Plan guidePK
: PRIMARY KEY constraintR
: Regla (estilo antiguo, stand-alone)RF
: Replication-filter-procedureS
: tabla base de sistemaSN
: sinónimoSO
: Objeto de secuenciaSQ
: cola de servicioTA
: Trigger DML de ensamblado (CLR)TF
: función table-valued SQLTR
: Trigger DML SQLTT
: Tipo de tablaU
: Tabla (definida por el usuario)UQ
: UNIQUE constraintV
: VistaX
: procedimiento almacenado extendidoET
: tabla externa
<TEXTO_A_BUSCAR>
es el texto que queremos buscar