GNU/Linux >> LINUX-Kenntnisse >  >> Panels >> Plesk

Globale SQL-Suche

Globale SQL-Suche Wenn Sie eine globale Suche in einer SQL-Datenbank durchführen müssen, ohne Änderungen daran vorzunehmen, können Sie die folgenden Skripts verwenden, um zuerst eine gespeicherte Prozedur zu erstellen und dann die Prozedur auszuführen, um die Suche in der Datenbank durchzuführen.

Skript zum Erstellen einer gespeicherten Prozedur

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

Skript zum Ausführen einer gespeicherten Prozedur

use <datbasename>

EXEC SearchAllTables '<searchterm>'

GO

Sobald Sie Ihre gespeicherte Prozedur ausgeführt haben, können Sie sie löschen, indem Sie Datenbank> Programmierbarkeit> Gespeicherte Prozeduren erweitern Klicken Sie mit der rechten Maustaste auf SearchAllTables Vorgang und wählen Sie Löschen .


Plesk
  1. Sql Server auf Ubuntu ausführen?

  2. Wie kann man die Suche in Dash beschleunigen?

  3. Wie behebt man das Rendern von Schriftarten (kein Anti-Aliasing) im globalen Unity-Menü und in der Suche?

  4. So durchsuchen Sie Dateien nach Inhalten

  5. So ändern Sie den Kompatibilitätsgrad der SQL-Datenbank

So suchen Sie in Vim / Vi

So suchen Sie in Nano

SQLite-Cheatsheet

Systemdokumentation

Globales Menü verkleinert den App-Namen?

MySQL Suchen und Ersetzen