Twitter Flickr Pinterest LinkedIn YouTube Google Maps E-mail RSS
formats

Buscador avanzado de texto para SQL Server #PalSQLSearch

En esta entrada, les presento un software para Windows que resulta muy útil para administradores de bases de datos y usuarios avanzados.

Esta herramienta facilita la búsqueda de un texto específico en todas las tablas de una base de datos de SQL Server. Es perfecta para identificar patrones de texto, mostrando en qué tablas aparecen y cuántas veces.

La búsqueda se puede efectuar tanto local como remotamente, utilizando autenticación de SQL Server ó windows.

Una vez que los datos han sido localizados, se pueden organizar, ordenar, filtrar, clasificar y, finalmente, exportar a Excel.

Para facilitar la prueba de su funcionamiento, he configurado un servidor SQL Server en clouding.io remoto demo por defecto, equipado con una cuenta de usuario con permisos de lectura. No lo peteís, es una VPS con poca Ram. 😉

Espero que os guste esta herramienta, ya que no hay muchas otras similares que conozca. Se caracteriza por su facilidad de uso, siguiendo la filosofía KISS y con un diseño simple “en la simplicidad reside la belleza“, pero en su interior compleja, como bien afirmó el arquitecto Ludwig Mies van der Rohe, “Dios está en los detalles“.

Post-art: Término que se refiere a la habilidad de combinar arte e información en artículos o publicaciones de redes sociales. @oscardelacuesta

Post-art: Término que se refiere a la habilidad de combinar arte e información en artículos o publicaciones de redes sociales. @oscardelacuesta

Uso del programa

La búsqueda eficiente en múltiples tablas es una tarea compleja, llena de “detalles“; por eso, PalSQLSearch emplea un procedimiento almacenado que debe ser inicializado en el servidor antes de su primer uso. Para activar la función de búsqueda, simplemente haz clic en “1 – Crear procedimiento almacenado” durante el primer uso de la aplicación.

Además, he habilitado un servidor de prueba en la nube para que puedas realizar búsquedas en la base de datos gratuita de Microsoft, ContosoRetailDW. Puedes configurar tus propios accesos en otros servidores, tanto locales como en la nube, siempre usando autenticación SQL Serve o Windows.

En el servidor de cortesía, el procedimiento almacenado ya está establecido, por lo que si seleccionas “Crear procedimiento almacenado”, te aparecerá un mensaje indicando que ya está disponible.

Más sobre los procedimientos almacenados: Un procedimiento almacenado es un conjunto de instrucciones SQL que se ejecuta en el servidor de la base de datos y se almacena para su reutilización. Los procedimientos almacenados pueden mejorar el rendimiento al reducir el tráfico de red, ya que las operaciones se ejecutan en el servidor y solo se envían los resultados al cliente. Además, aumentan la seguridad al encapsular la lógica de acceso a datos.

Tipos de autenticación en SQL Server:

  1. Autenticación de SQL Server: Utiliza un nombre de usuario y contraseña específicos del servidor de SQL Server. Esta autenticación permite el acceso independientemente del usuario de Windows.
  2. Autenticación de Windows: Utiliza las credenciales del usuario de Windows, integrando el manejo de seguridad de SQL Server con el de Windows. Este método es más seguro que la autenticación de SQL Server porque reduce la posibilidad de revelar la información de conexión.

La aplicación todavía no soporta cifrado en la conexión.

Mecanismo interno de funcionamiento

Una vez instalado el programa, en la primera ejecución una vez establecidos los parametros de inicialización con el servidor, se intentará desplegar un procedimiento almacenado que crea una tabla en la base de datos especificada. En esa tabla se van a almacenar los resultados de la búsqueda general.

El procedimiento almacenado se llama PalSQLSearch y la tabla donde deja los datos de búsqueda es PalSQLSearchTabla. Al pulsar sobre buscar de forma “sencilla” un texto ejecuta dicho algoritmo.

Os dejo el “detalle” del procedimiento almacenado.

CREATE PROC [BUILTIN\Users].[PalSQLSearch]
(
@StrValorBusqueda nvarchar(100)
)
AS
BEGIN

-- Borra la tabla si existe para empezar con una limpia
IF OBJECT_ID('PalSQLSearchTabla', 'U') IS NOT NULL
DROP TABLE PalSQLSearchTabla;
CREATE TABLE PalSQLSearchTabla (NombreColumna nvarchar(370), ValorColumna nvarchar(3630))
SET NOCOUNT ON

DECLARE @NombreTabla nvarchar(256),
@NombreColumna nvarchar(128),
@StrValorBusqueda2 nvarchar(110)

SET @NombreTabla = ''
SET @StrValorBusqueda2 = QUOTENAME('%' + @StrValorBusqueda + '%','''')

WHILE @NombreTabla IS NOT NULL
BEGIN
SET @NombreColumna = ''
SET @NombreTabla =
(SELECT MIN(QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME))
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE'
AND QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME) > @NombreTabla
AND OBJECTPROPERTY(
OBJECT_ID(QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME)), 'IsMSShipped') = 0)

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

IF @NombreColumna IS NOT NULL
BEGIN
INSERT INTO PalSQLSearchTabla 
EXEC
('SELECT ''' + @NombreTabla + '.' + @NombreColumna + ''', LEFT(' + @NombreColumna + ', 3630)
FROM ' + @NombreTabla + ' (NOLOCK) ' + ' WHERE ' + @NombreColumna + ' LIKE ' + @StrValorBusqueda2)
END 
END
END
SELECT NombreColumna, ValorColumna FROM PalSQLSearchTabla 
END

Descarga el instalador, ver 1.1 (setup.exe)
08/07/2024

Colabora con el proyecto si te ha gustado.

 

Sobre aviso de origen desconocido al ejecutar el programa de instalación no implica que sea peligroso, para poder ejecutar es necesario ver las imagenes inferiores. Primero es necesario pulsar más información, que avisa del origen desconocido, después ejecutar de todas las formas.

El motivo de esto radica en que el software es muy nuevo, no se encuentra en la microsoft store y no conoce la procedencia del mismo.

 

Requisitos y Soporte

Versión actual Free 1.0

Compatible 100% con Windows 10 y 11.

Net Framework 4.8 ó superior. Versiones de 32 y 64 bits disponibles.

Desarrollado en C#, Winform y controles Syncfusion sobre Visual Studio Community 2022

Todas las herramientas que he usado en la creación son licencias Community o disponibles de libre descarga.

Por otro lado, no me hago responsable del uso del software y de sus consecuencias derivadas, tal y como aparece en el instalador. Cuando se ejecuta se aceptan dichos términos.

Esta herramienta esta creada por Oscar de la Cuesta Campillo se encuentra bajo una Licencia Creative Commons
Atribución-SinDerivadas 3.0 Unported. CC BY-ND 3.0

Etiquetas:
Home Sin categoría Buscador avanzado de texto para SQL Server #PalSQLSearch
© www.palentino.es, desde el 2012 - Un Blog para compartir conocimientos ...

Uso de cookies en mi sitio palentino.es

Este sitio web utiliza cookies para que tengamos la mejor experiencia de usuario. Si continúas navegando estás dando tu consentimiento para la aceptación de las mencionadas cookies y la aceptación de la política de cookies

ACEPTAR
Aviso de cookies