


Comment puis-je rechercher efficacement une chaîne dans toutes les tables et colonnes d'une base de données SQL Server ?
Recherche d'une chaîne dans un labyrinthe de bases de données : une aventure SQL Server
Naviguer dans une base de données tentaculaire peut être intimidant, surtout lorsque vous êtes essayer de localiser la source de données spécifiques. SQL Server 2005 offre une solution robuste pour relever ce défi : une recherche complète dans toutes les tables, lignes et colonnes.
Pour nous lancer dans cette recherche, examinons le code fourni :
DECLARE @search_string VARCHAR(100), @table_name SYSNAME, @table_schema SYSNAME, @column_name SYSNAME, @sql_string VARCHAR(2000)
Nous commençons par déclarer des variables pour stocker la chaîne de recherche, les informations de table et les requêtes SQL.
SET @search_string = 'Test'
Ensuite, nous définissons les curseurs pour parcourir les tables et les colonnes :
DECLARE tables_cur CURSOR FOR SELECT TABLE_SCHEMA, TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE' DECLARE columns_cur CURSOR FOR SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = @table_schema AND TABLE_NAME = @table_name AND COLLATION_NAME IS NOT NULL
Nous limitons la recherche aux tables de base et nous concentrons sur les colonnes avec des classements non nuls, car seules les chaînes en ont.
La boucle principale parcourt tables et colonnes :
OPEN tables_cur FETCH NEXT FROM tables_cur INTO @table_schema, @table_name WHILE (@@FETCH_STATUS = 0) BEGIN OPEN columns_cur FETCH NEXT FROM columns_cur INTO @column_name WHILE (@@FETCH_STATUS = 0) BEGIN SET @sql_string = 'IF EXISTS (SELECT * FROM ' + QUOTENAME(@table_schema) + '.' + QUOTENAME(@table_name) + ' WHERE ' + QUOTENAME(@column_name) + ' LIKE ''%' + @search_string + '%'') PRINT ''' + QUOTENAME(@table_schema) + '.' + QUOTENAME(@table_name) + ', ' + QUOTENAME(@column_name) + '''' EXECUTE(@sql_string) FETCH NEXT FROM columns_cur INTO @column_name END CLOSE columns_cur DEALLOCATE columns_cur FETCH NEXT FROM tables_cur INTO @table_schema, @table_name END CLOSE tables_cur DEALLOCATE tables_cur
Pour chaque combinaison table-colonne, il construit une requête SQL qui recherche la chaîne fournie et imprime le résultat.
Mises en garde :
Bien qu'efficace, cette approche a ses inconvénients :
- Elle est notoirement lente, en particulier pour les grandes bases de données.
- La gestion des erreurs n'est pas implémentée et une négligence peut existent.
- Un expert en bases de données doit être consulté pour bien comprendre la nature complexe des bases de données et éviter les duplications ou autres défis cachés.
Approche alternative :
Une autre option pour effectuer des recherches dans de grandes bases de données consiste à utiliser la recherche en texte intégral (FTS). FTS est conçu à cet effet et peut être beaucoup plus rapide que le code ci-dessus. Cependant, cela nécessite que la base de données soit configurée pour FTS.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Réduisez l'utilisation de la mémoire MySQL dans Docker

Comment modifier une table dans MySQL en utilisant l'instruction ALTER TABLE?

Comment résoudre le problème de MySQL ne peut pas ouvrir la bibliothèque partagée

Exécutez MySQL dans Linux (avec / sans conteneur Podman avec phpmyadmin)

Exécuter plusieurs versions MySQL sur macOS: un guide étape par étape

Comment configurer le cryptage SSL / TLS pour les connexions MySQL?

Quels sont les outils de GUI MySQL populaires (par exemple, MySQL Workbench, PhpMyAdmin)?
