GNU/Linux >> Tutoriels Linux >  >> Panels >> Plesk

Recherche SQL globale

Recherche SQL globale Si vous devez effectuer une recherche globale sur une base de données SQL sans y apporter de modifications, vous pouvez utiliser les scripts ci-dessous pour créer d'abord une procédure stockée, puis exécuter la procédure pour effectuer la recherche sur la base de données.

Script pour créer une procédure stockée

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 pour exécuter la procédure stockée

use <datbasename>

EXEC SearchAllTables '<searchterm>'

GO

Une fois que vous avez exécuté votre procédure stockée, vous pouvez la supprimer en développant la base de données> Programmabilité> Procédures stockées clic droit sur SearchAllTables procédure et en sélectionnant supprimer .


Plesk
  1. Comment modifier le niveau de compatibilité de la base de données SQL

  2. Comment trouver de grandes tables dans la base de données SQL

  3. Erreur de serveur MS SQL 0x80070218

  4. Erreur de blocage de transaction MSSQL

  5. Erreur d'administration Web MS SQL de Plesk

Comment effectuer une recherche dans Vim / Vi

Comment effectuer une recherche dans Nano

Aide-mémoire SQLite

Documentation système

Le menu global réduit le nom de l'application ?

Recherche et remplacement MySQL