|
Como buscar un string en cualquier Base de Datos
Como la mayoria de los que trabajan con Bases de Datos sabrán, todas las tablas están relacionadas con alguna otra dentro de una base de datos...
Buen, el tema es que uno a medida que trabaja con una Base, se va aprendiendo las tablas y como estan vinculadas y eso...
Pero viste que siempre te queda una tabla que no tenes idea de en donde está, ni como se llama, y te jode la vida porque tenes referenciada otra tabla y AHAHAHHHHHHHH!!!!
Bueno, me acaba de pasar a mi
Ta, SQL, ta (Y)
En fin... encontre este StoredProcedure RE-COPANTE:
Paso 1: Copiar todo este texto en el SQL y ejecutarlo asi como está. (Con esto se crea solo)
CREATE PROC SearchAllTables
(
@SearchStr nvarchar(100)
)
AS
BEGIN
-- Follow me on Twitter @Lorenzmaister
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 + '%','''')
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
(
'SELECT ''' + @TableName + '.' + @ColumnName + ''', LEFT(' + @ColumnName + ', 3630)
FROM ' + @TableName + ' (NOLOCK) ' +
' WHERE ' + @ColumnName + ' LIKE ' + @SearchStr2
)
END
END
END
SELECT ColumnName, ColumnValue FROM #Results
END
Paso 2: Ya con esto tenes el StoredProcedure creado. Lo unico que tenes que hacer es escribir la siguiente linea para ejecutarlo, incluyendo la palabra o string que queres buscar. Por ejemplo:
EXEC SearchAllTables 'HOLASOYLATABLAQUETEJODIALAVIDA'
GO
Lo que les devuelve esto es la la tabla en donde se encontro ese string que pusieron y en que columna y row está.
fuente: taringa.net
Tal vez te interese leer:
-
Hoy es una fecha muy importante para este intérprete de la música vallenata, pues es el dia de los...
-
Leyendo un poco noticias de interés general me estrelle con un artículo de la revista portafolio d...
-
Aunque el buscador no cerró sus servicios si coloco un link a un artículo en donde dan a conocer s...
-
Uno de los portales de piratería más famosos de habla hispana se une en contra de la ley SOPA y en...
-
Como se venía anunciando desde hace unos días, los cofundadores de Wikipedia han decidió cerrar a...
relatedArticlesImpresiones: 658 |