Sei sulla pagina 1di 11

SQL Buscar tabla o columna en una base de

datos de SQL Server




Muchas veces cuando comenzamos a utilizar un nuevo sistema con base de datos en SQL
Server, ya sea para dar soporte o simplemente necesitamos realizar consultas y buscamos
algn campo en especifico dentro de la base datos, esto puede volverse tedioso si la base de
datos contiene cientos de tablas, ahora vemos que podemos reducir nuestros tiempos
debsqueda realizando consultas con el dato que deseamos encontrar.
Caractersticas 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 busqueda EmpleadosRegion, nos arrojara como resultado todas las tablas que
contengan EmpleadosRegion, o tambin si ponemos solo Empleados, o Emplead nos arrojara
todas las tablas que contengan esos caracteres.
Query de bsqueda
En este solo tenemos que cambiar el dato NombreABuscar por el nombre de
la tabla ocolumna que buscamos,

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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 Mximo'
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 en Microsoft SQL Server
Management Studio,
Primero buscaremos el nombre de una tabla el cual se llama Empleado.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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 Mximo'
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 bsqueda
Como podemos ver en el Query el nombre que busque es Empleado y el resultado nos dio
las tablas que contenan 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, lo podemos buscar con tan solo una parte de esta por ejemplo Clie, ahora
veamos cual es el resultado.
Como podemos ver, nuestra bsqueda me arrojo como resultado Tablas y Columnas que
contienen Clie.

SQL Buscar texto dentro de procedimientos
almacenados

Cuando comenzamos a dar soporte o continuidad a un proyecto ya iniciado, es necesario
conocer donde se encuentran algunos elementos, en este caso si necesitamos realizar la
bsqueda de instrucciones en los procedimientos almacenados y no perder tiempobuscando
en cada uno de los procedimientos es recomendable utilizar las funciones de bsqueda que
SQL nos ofrece, a continuacin se mostrara como funciona y el resultado que arroja.
Query para bsqueda en procedimientos almacenados.

1 SELECT SUBSTRING(text,0,40) FROM syscomments WHERE text LIKE '%BUSQUEDA%'
Ejemplo
Veamos el query en funcionamiento, realizare una busqueda para encontrar el texto MAX,
elquery me dara como resultado todos los procedimientos almacenados que contengan en su
interior MAX.


SQL - Buscar dato O Campo ES: Todas Las
Tablas de base de la de Datos en Creando
servidor Procedure ONU almacenado La SQL

Es Comn Que necesitemos ENCONTRAR UN dato o campo En Una la Base de Datos , Pero
CUANDO Queremos ver en Cuantas Tablas Podemos ENCONTRAR Este dato, this tarea Se
Puede volver ONU tediosa Poco Por lo Complejo Que se tornaran los querys prr realizar this
Proceso.
Consulta prr Crear el Procedure almacenado La prr
realizar bsquedas
Con this consulta s DeCLARA y crea el Procedure anidado Que utilizaremos prr Realizar
labsqueda de los Datos o campos en Toda Las tablas de la la Base de Datos , Donde solo
utilizaremos Una linea de Cdigo Cual es el "GO SearchAllTables EXEC 'PC'", Pero mas
Adelante les mostrare ESTO.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
CREATE PROC SearchAllTables
(
@SearchStr nvarchar(100)
)
AS
BEGIN

CREATE TABLE #Results (ColumnName nvarchar(370), ColumnValue nvarchar(3630))

SET NOCOUNT ON

DECLARE @TableName nvarchar(256), @ColumnName nvarchar(128), @SearchStr2 nvarchar(110)
SET @TableName = ''
SET @SearchStr2 = QUOTENAME('%' + @SearchStr + '%','''')

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
WHILE @TableName IS NOT NULL
BEGIN
SET @ColumnName = ''
SET @TableName =
(
SELECT MIN(QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME))
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE'
AND QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME) > @TableName
AND OBJECTPROPERTY(
OBJECT_ID(
QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME)
), 'IsMSShipped'
) = 0
)

WHILE (@TableName IS NOT NULL) AND (@ColumnName IS NOT NULL)
BEGIN
SET @ColumnName =
(
SELECT MIN(QUOTENAME(COLUMN_NAME))
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = PARSENAME(@TableName, 2)
AND TABLE_NAME = PARSENAME(@TableName, 1)
AND DATA_TYPE IN ('char', 'varchar', 'nchar', 'nvarchar')
AND QUOTENAME(COLUMN_NAME) > @ColumnName
)

IF @ColumnName IS NOT NULL
BEGIN
INSERT INTO #Results
EXEC
(
49
50
51
52
53
54
55
56
57
58
'SELECT ''' + @TableName + '.' + @ColumnName + ''', LEFT(' + @ColumnName + ', 3630)
FROM ' + @TableName + ' (NOLOCK) ' +
' WHERE ' + @ColumnName + ' LIKE ' + @SearchStr2
)
END
END
END

SELECT ColumnName, ColumnValue FROM #Results
END

Consulta prr Realizar la bsqueda Realizando La
Llamada al Procedure anidado.
Con this ejecutar consultas Cambiando 'Busqueda' Por El Texto del campo o dato Que
deseemos Buscar, nos realizara La Google bsqueda de Este bao: Todas Las tablas y
Columnas de la la Base de Datos .

1
2
EXEC SearchAllTables 'Busqueda'
GO


Restaurar una BD en SQL
Server 2008 R2
3 dic 2012 | Bases de datos
Como restaurar una base de datos usando SQL Server 2008 r2?
1. Instalar SQL server 2008 r2
2. Restaurando base de datos
Lo primero que debemos hacer es conectarnos con el servidor, lo haremos de la
siguiente manera:
Al momento de iniciar nuestro SQL Server 2008 r2 por primera vez nos mostrara una
pantalla como la siguiente

No modificar ningn campo excepto por el de nombre del servidor aqu pondremos el
nombre del servidor que hayamos creado en mi caso lo deje por default as que
pondr (local) no olvidar los parntesis y a continuacin le damos en conectar.
Una vez conectados nos mostrara una ventana ala izquierda con una serie de carpetas
(bases de datos, seguridad, objetos de servidor, replicacin, administracin) tal como
lo muestra la siguiente imagen

Para poder restaurar nuestra base de datos lo primero que debemos hacer es ubicar el
archivo o la base de datos que necesitamos restaurar normalmente tiene la
terminacin (.bak), este archivo esta alojado dentro de nuestro proyecto en la carpeta
o ruta siguiente C:\Users\Lucho\Desktop\Fondeos\construccin\base de
datos\respaldos\desarrollo el archivo normalmente esta comprimido (.rar) o (.zip) una
ves identificado nuestro archivo lo que debemos hacer es descomprimir este archivo
para que nos quede el archivo (.bak) el cual es el que necesitaremos para poder
restaurar nuestra base de datos.

Se muestra el archivo comprimido (.rar) y el archivo o base de datos descomprimido
(.bak)
Volviendo nuestro SQL Server 2008 r2 con el click derecho de nuestro mouse
seleccionamos la carpeta bases de datos y seleccionamos la opcin (restaurar bases de
datos)

Nos abrir una ventana en la cual asignaremos un nombre a nuestra base de datos en
mi caso la base de datos la cual quiero restaurar se llama Fondeos as que dentro del
campo (A una base de datos:) pondr Fondeos y como la queremos restaurar desde un
archivo en nuestra computadora en la opcin (origen de la restauracin)
seleccionaremos la opcin desde dispositivo y a continuacin damos click en el botn
con putos.

Nos abrir nuevamente una nueva ventana en la cual buscaremos el archivo o la base
de datos que deseamos restaurar no olvidar que nuestro archivo debe terminar (.bak)
vamos a la opcin agregar y buscamos nuestro archivo, lo seleccionamos y le damos
aceptar

Nos aseguramos que nuestro archivo este correcto y presionamos aceptar, a
continuacin nos mostrara la ventana en la cual estbamos anteriormente pero ahora
en la parte de abajo nos mostrara la base de datos que hemos seleccionamos,
Activamos la casilla restaurar y presionamos aceptar

Por ultimo nos abrir una ventana la cual nos dir que la base de datos se restauro
correctamente.

Potrebbero piacerti anche