Es común que necesitemos buscar tablas en SQL o buscar columnas en SQL Server, mas cuando no somos los que desarrollamos la base de datos podemos tener complicaciones para encontrar alguna tabla o columna cuando es una base de datos grande.
Ahora vemos que podemos reducir nuestros tiempos de búsqueda realizando consultas con el dato que deseamos encontrar.
También te puede interesar buscar dentro de procedimientos almacenados.
Características del Query
Buscar el nombre de la tabla o columna en la Base de Datos sin tener el nombre exacto, podremos buscar por ejemplo una tabla o columna que se llama EmpleadosRegionMexico y solo poner en búsqueda EmpleadosRegion, nos arrojara como resultado todas las tablas que contengan EmpleadosRegion, o también si ponemos solo Empleados, o Emplead nos arrojara todas las tablas que contengan esos caracteres.
Query para Buscar Tablas o Columnas en SQL Server
Para consultar tablas en SQL o Columnas en SQL tenemos el siguiente Query. En este solo tenemos que cambiar el dato NombreABuscar por el nombre de la tabla o columna que buscamos.
USE SistCont
DECLARE @busqueda AS VARCHAR(20)
SET @busqueda = 'NombreABuscar'
select
t.name as 'Tabla',
c.name as 'Columna',
ti.name as 'Tipo',
c.is_nullable as 'Acepta Datos Nulos',
c.max_length as 'Largo Máximo'
from
sys.tables t left join
sys.all_columns c on (c.object_id = t.object_id) left join
sys.types ti on (c.system_type_id = ti.system_type_id)
where
c.name like '%' + @busqueda + '%' OR
t.name like '%' + @busqueda + '%'
order by 'tabla'
Funcionamiento de Query para buscar tabla o columna en una base de datos
Primero buscaremos el nombre de una tabla el cual se llama Empleado El cual nos va a listar columnas de una tabla SQL Server asi como de las Tablas que se contengan la palabra Empleado.
USE SistCont
DECLARE @busqueda AS VARCHAR(20)
SET @busqueda = 'Empleado'
select
t.name as 'Tabla',
c.name as 'Columna',
ti.name as 'Tipo',
c.is_nullable as 'Acepta Datos Nulos',
c.max_length as 'Largo Máximo'
from
sys.tables t left join
sys.all_columns c on (c.object_id = t.object_id) left join
sys.types ti on (c.system_type_id = ti.system_type_id)
where
c.name like '%' + @busqueda + '%' OR
t.name like '%' + @busqueda + '%'
order by 'tabla
Resultados de la búsqueda
Como podemos ver en el Query el nombre que busque es Empleado y el resultado nos dio las tablas que contenían Empleado, en este caso en la base de datos de muestra solo tenemos una tabla con el nombre empleados como se muestra en la imagen.
Ahora figuraremos que requerimos una Columna del cual no sabemos o recordamos el nombre completo, Podemos buscar nombre de columna en SQL con tan solo una parte de esta por ejemplo ‘Clie’, ahora veamos cual es el resultado.
Como podemos ver, nuestra búsqueda me arrojo como resultado Tablas y Columnas que contienen ‘Clie’.