Buscar valor en todas las tablas de una base de datos SQL Server
Caso:
Se requiere buscar un valor de texto en todas las tablas y columnas de una base de datos en SQL Server.
Solución:
Para encontrar el valor en todas las tablas de una base de datos sql server utilizar la siguiente query:
DECLARE @TextoBuscar nvarchar(100) SET @TextoBuscar = 'abcd' CREATE TABLE #Resultados (NombreColumna nvarchar(370), ValorColumna nvarchar(3630)) SET NOCOUNT ON DECLARE @NombreTabla nvarchar(256), @NombreColumna nvarchar(128), @TextoBuscar2 nvarchar(110) SET @NombreTabla = '' SET @TextoBuscar2 = QUOTENAME('%' + @TextoBuscar + '%','''') WHILE @NombreTabla IS NOT NULL BEGIN SET @NombreColumna = '' SET @NombreTabla = ( SELECT MIN(QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME)) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE' AND QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME) > @NombreTabla AND OBJECTPROPERTY( OBJECT_ID( QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME) ), 'IsMSShipped' ) = 0 ) WHILE (@NombreTabla IS NOT NULL) AND (@NombreColumna IS NOT NULL)