Est-il possible de rechercher des noms de table contenant des colonnes
LIKE '%myName%'
?
sql
sql-server
tsql
system-tables
gruber
la source
la source
Réponses:
Tableaux de recherche:
Rechercher des tableaux et des vues:
la source
INFORMATION_SCHEMA
vues @Revious incluses dans SQL Server sont conformes à la définition de la norme ISO pour INFORMATION_SCHEMA. ,sys.columns
,sys.tables
Est spécifique à Microsoft Sql Server.TABLE_SCHEMA
dans votre liste de sélection peut être utile. Toujours +1 car c'est une bonne réponse.Nous pouvons également utiliser la syntaxe suivante: -
la source
INFORMATION_SCHEMA
fait partie de la norme ANSIServeur SQL:
Oracle:
Je l'utilise TOUT le temps pour trouver TOUTES les instances d'un nom de colonne dans une base de données donnée (schéma).
la source
Cela vous donnera ici quelques informations supplémentaires sur le schéma, les tables et les colonnes sur lesquelles vous pouvez ou non choisir d'utiliser des conditions supplémentaires dans votre clause where pour filtrer. Par exemple, si vous vouliez seulement voir les champs qui doivent avoir des valeurs ajouter
Vous pouvez ajouter d'autres conditions, j'ai également ajouté les colonnes de la clause select de cette manière verticale afin qu'il soit facile de réorganiser, supprimer, renommer ou ajouter d'autres en fonction de vos besoins. Alternativement, vous pouvez rechercher uniquement des tables en utilisant T.Name. C'est très personnalisable.
Prendre plaisir.
la source
Cela devrait fonctionner:
la source
sys.tables
place desysobjects
(qui est obsolète à partir de SQL Server 2005)Si vous préférez les outils tiers, il existe de nombreuses options telles que:
Celles-ci sont très utiles si votre base de données contient des objets chiffrés (vues, procédures, fonctions) car vous ne pouvez pas facilement les rechercher à l'aide des tables système.
la source
Je ne sais pas pourquoi tant d'entre vous suggérant de se joindre à
sys.table with sys.columns
vous peuvent simplement utiliser le code ci-dessous:Select object_name(object_id) as TableName,* from SYS.columns where name LIKE '%MyName%'
ou
Si vous souhaitez également le nom du schéma:
la source
Si vous voulez simplement le nom de la table, vous pouvez l'exécuter:
Si vous voulez également le nom du schéma (ce qui dans de nombreux cas, vous le ferez, car vous aurez beaucoup de schémas différents, et à moins que vous ne vous souveniez de chaque table de la base de données et où il appartient, cela peut être utile) exécutez:
et enfin si vous le voulez dans un format plus agréable (bien que ce soit là que le code (à mon avis) devient trop compliqué pour une écriture facile):
notez que vous pouvez également créer une fonction basée sur ce que j'ai:
Il convient de noter que la fonction de concaténation a été ajoutée en 2012. Pour 2008r2 et versions antérieures, utilisez + pour concaténer des chaînes.
J'ai reformaté le proc un peu depuis que j'ai posté ça. Il est un peu plus avancé maintenant mais semble beaucoup plus compliqué (mais il est dans un proc donc vous ne le verrez jamais) et il est mieux formaté.
Cette version vous permet de l'avoir dans une base de données administrative puis de rechercher dans n'importe quelle base de données. Modifiez la décaleration de
@db
de'master'
à celle que vous souhaitez que la base de données par défaut soit (REMARQUE: l'utilisation de la fonction CONCAT () ne fonctionnera qu'avec 2012+ sauf si vous modifiez la concaténation de chaîne pour utiliser les+
opérateurs).la source
C'est du blog de Pinal Sir
la source
la source
Vous pouvez le trouver dans INFORMATION_SCHEMA.COLUMNS par filtre nom_colonne
la source
la source
La requête suivante vous donnera les noms de table exacts de la base de données ayant un nom de champ comme '% myName'.
la source
Pour obtenir des informations complètes: nom de colonne, nom de table ainsi que schéma de la table.
la source
je viens de l'essayer et cela fonctionne parfaitement
Modifiez uniquement YourDatbaseName en votre base de données et YourcolumnName en nom de colonne que vous recherchez pour le reste, gardez-le tel quel.
J'espère que cela a aidé
la source
la source
Je l'ai utilisé dans le même but et cela a fonctionné:
la source
J'espère que ce n'est pas une réponse en double, mais ce que j'aime faire, c'est générer une instruction sql dans une instruction sql qui me permettra de rechercher les valeurs que je recherche (pas seulement les tables avec ces noms de champs (comme c'est généralement nécessaire pour que je supprime ensuite toutes les informations relatives à l'ID du nom de colonne que je recherche):
Ensuite, je peux copier et coller exécuter ma 1ère colonne "SQLToRun" ... puis je remplace le "Select * from" par "Delete from" et cela me permet de supprimer toutes les références à cet ID donné! Écrivez ces résultats dans un fichier afin que vous les avoir juste au cas où.
REMARQUE **** Assurez-vous d'éliminer toutes les tables de préparation avant d'exécuter votre instruction de suppression ...
la source
la source
Comme Oracle, vous pouvez trouver des tableaux et des colonnes avec ceci:
la source
Je voulais quelque chose pour les tableaux et les vues qui ne me faisaient pas saigner.
Requete
Résultat
la source
Juste pour améliorer les réponses ci-dessus, j'ai également inclus des vues et concaténé le schéma et la table / vue, ce qui rend les résultats plus apparents.
la source
Vous pouvez essayer cette requête:
la source
Voici la réponse à votre question
la source
la source
Voici une solution de travail pour une base de données Sybase
la source
Nous pouvons utiliser
sp_columns
à cette fin.la source
Requête SQL pour afficher toutes les tables qui ont un nom de colonne spécifié:
la source