GNU/Linux >> Tutoriales Linux >  >> Panels >> Plesk

Búsqueda SQL global

Búsqueda SQL global Si necesita realizar una búsqueda global en una base de datos SQL sin realizar ningún cambio, puede usar los scripts a continuación para crear primero un procedimiento almacenado y luego ejecutar el procedimiento para realizar la búsqueda en la base de datos.

Script para crear un procedimiento almacenado

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 + '%','''')

    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', 'int', 'decimal')
                    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

Script para ejecutar el procedimiento almacenado

use <datbasename>

EXEC SearchAllTables '<searchterm>'

GO

Una vez que haya ejecutado su procedimiento almacenado, puede eliminarlo expandiendo la base de datos> Programabilidad> Procedimientos almacenados haciendo clic con el botón derecho en Buscar en todas las tablas procedimiento y seleccionando eliminar .


Plesk
  1. Cómo cambiar el nivel de compatibilidad de la base de datos SQL

  2. Cómo encontrar tablas grandes en la base de datos SQL

  3. Error del servidor MS SQL 0x80070218

  4. Error de interbloqueo de transacción de MSSQL

  5. Error de administrador web de Plesk MS SQL

Cómo buscar en Vim / Vi

Cómo buscar en Nano

Hoja de trucos de SQLite

Documentación del sistema

¿El menú global reduce el nombre de la aplicación?

Buscar y reemplazar MySQL