Buscar

MSSQL: Buscar columnas en todas las tablas

Podemos utilizar este código de T-SQL (Transact-SQL) para buscar columnas con cierto texto en todas las tablas de todas las bases de datos en un servidor Microsoft SQL Server (MSSQL).

El código T-SQL a utilizar es el siguiente:

MSSQL: Buscar columnas en todas las tablas: Código T-SQL


--
-- MSSQL: Buscar columnas en todas las tablas de todas las bases de datos
-- https://www.SYSADMIT.com
--

DECLARE @command varchar(4000)
SELECT @command = '
USE [?] 
select DB_NAME(), TABLE_NAME AS TableName, COLUMN_NAME AS ColumnName
FROM        INFORMATION_SCHEMA.COLUMNS
WHERE       COLUMN_NAME LIKE ''%NumFactura_Con%''
ORDER BY    TableName
            ,ColumnName
'

DECLARE @DatabasesKst TABLE
(
  database_name VARCHAR(50),
  TableName VARCHAR(100),
  ColumnName VARCHAR(50)
)

INSERT  INTO @DatabasesKst
EXEC sp_MSforeachdb @command

select * from @DatabasesKst

--
-- MSSQL: Buscar columnas en todas las tablas de todas las bases de datos
-- https://www.SYSADMIT.com
--


MSSQL: Buscar columnas en todas las tablas: Consideraciones

1) Texto a buscar como nombre de columna:

En la parte del filtrado del WHERE, tenemos:

"%NumFactura_Con%"

Debemos substituir la cadena: NumFactura_Con por la cadena que queramos buscar.

Por ejemplo, si quisiéramos buscar el texto: "IdFactura" como texto en todas las columnas, bastaría con indicar:

"%IdFactura%"

Por otro lado, hay que tener en cuenta que el carácter % es un comodín, esto significa que buscará cualquier cadena que incluya: IdFactura, con cualquier cadena delate y atrás.

La localización en el código anterior, es la siguiente:


MSSQL: Buscar columnas en todas las tablas

2) Resultados:

El resultado de la ejecución consistirá en una tabla con tres columnas:

database_name
TableName
ColumnName

De forma que veremos todas las columnas de todas las bases de datos que contengan la cadena indicada.

No hay comentarios:

Publicar un comentario