Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Recherche d'objets de base de données et de données de table dans SQL Server

Si vous êtes un administrateur ou un développeur de base de données SQL Server, vous devez fréquemment rechercher des objets de base de données spécifiques dont vous ne vous souvenez que partiellement des noms. L'approche manuelle pour effectuer ces opérations de recherche prend du temps, en particulier lorsque la base de données contient un grand nombre d'objets.

Un autre scénario est celui dans lequel vous souhaitez rechercher des données spécifiques dans toutes les tables de la base de données. Dans ce cas, vous devez exécuter une instruction SELECT plusieurs fois en fonction du nombre de tables ou de vues de base de données dans lesquelles vous souhaitez effectuer une recherche, ou écrire un curseur complexe pour boucler et rechercher dans toutes les tables de base de données, ce qui nécessite des compétences avancées en développement SQL Server.

Dans cet article, nous examinerons différentes façons de rechercher un objet de base de données ou des données spécifiques dans SQL Server, en passant progressivement des méthodes intégrées et en plongeant dans un outil tiers qui en fait un jeu d'enfant pour obtenir la base de données demandée. objet ou données.

Interroger sys.objects

Sys.objects est une vue de gestion dynamique du système SQL Server qui peut être utilisée pour répertorier tous les objets définis dans une base de données spécifique.

Par exemple, pour répertorier tous les objets de base de données qui ont "Emp" dans leurs noms, nous pouvons interroger le DMV du système sys.objects en fonction du nom de l'objet, comme dans la requête T-SQL ci-dessous :

SELECT NAME AS ObjName
    ,schema_name(schema_id) AS SchemaName
	,type AS ObjType
	,type_desc AS ObjTypeDesc
	,create_date
	,modify_date
	FROM sys.objects
WHERE NAME LIKE '%Emp%'
ORDER BY ObjName ASC, ObjType ASC

Et le résultat renvoyé par ma base de données de test, avec des informations complètes sur le nom complet de l'objet, le type, les données de création et de modification, sera le suivant :

Explorateur d'objets SQL Server Management Studio

Une autre méthode qui peut être utilisée pour rechercher un objet de base de données spécifique dans votre base de données est l'explorateur d'objets SQL Server Management Studio.

Lorsque vous utilisez SQL Server Management Studio pour vous connecter et administrer votre instance SQL Server, vous pouvez ouvrir l'Explorateur d'objets en choisissant l'option Détails de l'Explorateur d'objets dans le menu Affichage, ou en appuyant simplement sur la touche F7 , comme indiqué ci-dessous :

Lorsque l'Explorateur d'objets est ouvert, vous pouvez rechercher un objet de base de données spécifique de la manière suivante :

  • naviguez jusqu'à la base de données dans laquelle vous souhaitez effectuer une recherche
  • écrivez le nom (complet ou partiel) de l'objet de la base de données dans la Recherche zone de texte
  • appuyez sur Entrée pour lancer le processus de recherche

La liste de tous les objets de la base de données qui répondent à vos critères de recherche s'affichera comme indiqué ci-dessous :

Pour accéder à l'emplacement d'un objet de base de données spécifique, à partir du résultat de recherche de l'explorateur d'objets ouvert, cliquez avec le bouton droit sur cet objet de base de données et choisissez Synchroniser option, comme indiqué ci-dessous :

Le pointeur vous conduira automatiquement à l'emplacement de cet objet comme indiqué ci-dessous :

Filtrage SQL Server Management Studio

SQL Server Management Studio nous offre un autre moyen de rechercher et de localiser un objet de base de données spécifique à l'aide de filtres.

Les objets de la base de données peuvent être filtrés comme suit :

  • naviguez jusqu'à la base de données où se trouvent les objets
  • développer le nœud de la base de données
  • pointez vers le dossier dans lequel se trouve l'objet (comme les tables, les vues, les procédures stockées ou les fonctions)
  • faites un clic droit sur ce nœud et choisissez Paramètres de filtre sous le Filtre liste d'options, comme indiqué ci-dessous :

À partir du Paramètre de filtre ouvert fenêtre, choisissez les critères de recherche que vous utiliserez pour identifier l'objet de la base de données (par exemple, le nom, le schéma ou le propriétaire de cet objet, l'opérateur qui sera utilisé dans le filtre de recherche). Par exemple, vous pouvez rechercher un objet de base de données dont le nom est égal à, contenant ou non la valeur fournie. Après avoir spécifié les critères de filtrage, cliquez sur OK pour appliquer le filtre :

Une fois le filtre appliqué, vous verrez que seuls les objets de la base de données qui répondent aux critères de recherche du filtre seront répertoriés sous le nœud de type d'objets, comme indiqué ci-dessous :

Pour supprimer le filtre et afficher à nouveau tous les objets de la base de données, cliquez avec le bouton droit sur le nœud de la liste des objets de la base de données concerné, qui est les Tables nœud dans notre exemple, et choisissez le Supprimer le filtre dans la liste des options de filtre, et tous les objets de la base de données seront à nouveau affichés, comme indiqué ci-dessous :

Recherche de données dans SQL Server Management Studio

En plus d'écrire des requêtes SELECT pour rechercher une valeur spécifique, SQL Server Management Studio nous offre un autre moyen de rechercher des valeurs de colonne et de les modifier directement au niveau de l'objet de la base de données en fonction des critères spécifiés.

Pour rechercher une valeur de données dans une table spécifique, accédez à cette table dans SQL Server Management Studio, cliquez avec le bouton droit sur cette table et sélectionnez Modifier les 200 premières lignes option, comme indiqué ci-dessous :

Dans la fenêtre ouverte, cliquez sur l'icône Tableau ci-dessous pour afficher la fenêtre de filtrage :

Dans la fenêtre de filtrage ouverte, précisez la condition et la ou les colonnes qui vous intéressent. Dans l'exemple ci-dessous, nous allons lister toutes les lignes d'employés dont l'ID est supérieur à 10 :

Après avoir configuré le filtre, faites un clic droit n'importe où dans une zone vide et choisissez Exécuter SQL possibilité d'appliquer les conditions :

Les lignes qui remplissent les conditions appliquées seront affichées dans la grille de résultats, et vous pouvez effectuer des mises à jour sur ces données, comme indiqué ci-dessous :

Rechercher un outil tiers SQL Server

Jusqu'à présent, nous avons discuté de différentes méthodes de recherche d'objets de base de données et de données de table. Mais ces méthodes nous fournissent des types d'informations spécifiques qui ne peuvent pas être filtrés, triés ou gérés facilement. C'est pourquoi nous devons nous tourner vers les outils tiers disponibles sur le marché et, espérons-le, en trouver un qui offre toutes les fonctionnalités de recherche discutées dans la même fenêtre et nous permet de gérer les résultats en fonction de nos besoins.

L'un des outils tiers les plus utiles et les plus conviviaux qui peut être utilisé facilement et rapidement pour rechercher tout type d'objets ou de données de base de données est dbForge Search for SQL Server by Devart.

dbForge Search for SQL Server est un complément gratuit de SQL Server Management Studio qui nous permet de localiser n'importe quel objet ou donnée de base de données SQL Server, sans avoir besoin de parcourir l'explorateur d'objets SSMS ou de rappeler l'emplacement de cet objet. Il nous permet de rechercher dans tous les objets de la base de données ou de configurer nos propres filtres de recherche pour localiser rapidement les objets ou les données de la base de données et les parcourir facilement dans l'explorateur d'objets SSMS. Avec dbForge Search for SQL Server, vous pouvez également trier et filtrer les résultats de la recherche comme vous le souhaitez.

L'outil gratuit dbForge Search for SQL Server peut être téléchargé à partir de la page de téléchargement Devart et facilement installé sur votre machine à l'aide d'un assistant d'installation simple, comme indiqué ci-dessous :

L'assistant d'installation vous demandera d'abord de spécifier le dossier d'installation de dbForge Search for SQL Server :

Ensuite, il vous laissera choisir la version de SQL Server Management Studio installée sur votre machine :

Et enfin, vous pouvez choisir quelle optimisation de démarrage sera appliquée à l'outil pour améliorer ses performances, comme indiqué ci-dessous :

Lorsque l'installation de dbForge Search for SQL Server démarre, vous pouvez surveiller le processus d'installation via la barre de progression de l'installation :

Après avoir terminé le processus d'installation du complément dbForge Search for SQL Server, l'assistant d'installation nous informera que le complément est installé avec succès pour la version SSMS sélectionnée et prêt à être utilisé :

Pour commencer à utiliser l'outil de recherche dbForge, ouvrez SQL Server Management Studio. Vous trouverez l'icône unique de l'outil de recherche, comme illustré ci-dessous :

Cliquez sur dbForge Search et une nouvelle fenêtre s'ouvrira, vous offrant la possibilité de rechercher à la fois des objets de base de données et des données de table :

Recherche d'objets de base de données

Supposons que nous devions rechercher tous les objets de base de données contenant "emp" dans leurs noms sous la base de données AdevtureWorks2016.

Cliquez sur DDL bouton à gauche pour choisir le Rechercher des objets de base de données option, écrivez la phrase de recherche dans la zone de recherche, puis sélectionnez l'instance SQL Server qui contient cette base de données et le nom de la ou des bases de données sur lesquelles effectuer la recherche :

Après cela, sélectionnez le type d'objet(s) de base de données que vous souhaitez rechercher dans les Types d'objets liste déroulante :

Et enfin, précisez le type de recherche que vous allez effectuer. Vous pouvez rechercher des objets de base de données avec la casse exacte du mot fourni, les objets qui correspondent à l'ensemble du mot fourni ou utiliser des caractères génériques (par exemple, " %") pour renvoyer des objets dont les noms contiennent la phrase fournie :

Après avoir cliqué sur le bouton de recherche près du texte fourni, vous verrez les résultats affichés dans deux sections. La première section contient des détails complets sur tous les objets de base de données qui répondent aux critères de recherche fournis. Dans la deuxième section, vous trouverez l'instruction T-SQL utilisée pour créer l'objet de base de données sélectionné :

En plus de la possibilité de trier le résultat renvoyé en fonction de n'importe quelle colonne, l'outil de recherche dbForge nous offre la possibilité de regrouper le résultat de la recherche par type d'objet. Pour regrouper le résultat de la recherche par chaque objet de la base de données, cliquez sur l'icône de regroupement, comme vous pouvez le voir ci-dessous :

Le résultat de la recherche sera regroupé par types d'objets de base de données, ce qui facilite la localisation et la gestion des objets qui vous intéressent :

Après avoir sélectionné l'objet de base de données nécessaire dans les résultats de la recherche, vous pouvez facilement localiser cet objet dans l'explorateur d'objets SSMS en cliquant dessus avec le bouton droit de la souris et en sélectionnant Rechercher dans l'explorateur d'objets choix :

Recherche de données

L'outil de recherche dbForge nous permet également de rechercher un texte ou une valeur numérique spécifique dans les tables ou les vues de la base de données. Pour changer le mode de recherche de la recherche d'objets de base de données à la recherche de données, cliquez sur Données bouton de recherche sur le côté gauche de la fenêtre, sélectionnez l'instance SQL Server sur laquelle votre base de données est hébergée, ainsi que la ou les bases de données, les tables et les vues dans lesquelles rechercher les données. Après avoir spécifié les critères de recherche de données et les filtres, écrivez la valeur des données que vous allez rechercher et cliquez sur l'icône de recherche à côté du texte fourni, comme indiqué ci-dessous :

Encore une fois, le résultat sera affiché en deux sections. La première section affiche des informations complètes sur l'emplacement de la valeur renvoyée et la deuxième section affiche la ligne complète qui contient cette valeur :

À partir des exemples précédents, nous pouvons clairement voir à quel point l'outil de recherche dbForge est facile et rapide pour rechercher et localiser tout objet ou donnée de base de données, en tenant compte du fait que le processus de recherche sera plus rapide si nous fournissons des critères de recherche précis et étroits. Essayez-le par vous-même !