SQL: Buscar tabla o columna en una base de datos de SQL Server

Microsoft-SQL-Server-Database


Publicidad




Muchas veces cuando comenzamos a utilizar algún nuevo sistema con base de datos en SQL Server, ya sea para dar soporte o simplemente necesitamos realizar alguna consulta y buscamos algún campo en especifico dentro de la base datos, esto puede volverse tedioso si la base de datos contiene cientos de tablas, existen formas de realizar esta consulta fácilmente, a continuación mostrare un query que nos ayudara en esta tarea.

Query de búsqueda

En este solo tenemos que cambiar el dato NombreABuscar por el nombre de la tabla o columna que buscamos,

Características del Query

1.- Buscar el nombre de tabla o columna en la Base de Datos

2.- 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 busqueda 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.

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'

Les mostrare en funcionamiento este Query en Microsoft SQL Server Management Studio,

Primero buscaremos el nombre de una tabla el cual se llama 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 solo tengo esa tabla en mi Base de datos llamada similar.

Ahora buscare una columna de la cual solo recuerdo una parte de esta ‘Clie’, ahora veamos cual es el resultado.

Como podemos ver, mi búsqueda me dio como resultado Tablas y Columnas que contienen ‘Clie’.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>