Étant donné un #, comment puis-je découvrir dans quelle table et colonne il peut être trouvé?
Je m'en fiche si c'est rapide, il faut juste que ça marche.
sql-server
Allain Lalonde
la source
la source
Réponses:
Cela pourrait vous aider . - de Narayana Vyas. Il recherche toutes les colonnes de toutes les tables d'une base de données donnée. Je l'ai déjà utilisé et ça marche.
Il s'agit du processus stocké du lien ci-dessus - la seule modification que j'ai apportée a été de remplacer la table temporaire par une variable de table afin que vous n'ayez pas à vous souvenir de la supprimer à chaque fois.
la source
Si vous ne devez exécuter une telle recherche qu'une seule fois, vous pouvez probablement utiliser l'un des scripts déjà présentés dans d'autres réponses. Mais sinon, je recommanderais d'utiliser ApexSQL Search pour cela. C'est un complément SSMS gratuit et cela m'a vraiment fait gagner beaucoup de temps.
Avant d'exécuter l'un des scripts, vous devez le personnaliser en fonction du type de données que vous souhaitez rechercher. Si vous savez que vous recherchez une colonne datetime, il n'est pas nécessaire de rechercher dans les colonnes nvarchar. Cela accélérera toutes les requêtes ci-dessus.
la source
Sur la base de la réponse de bnkdev, j'ai modifié le code de Narayana pour rechercher toutes les colonnes, même numériques.
Cela fonctionnera plus lentement, mais cette version trouve en fait toutes les correspondances, pas seulement celles trouvées dans les colonnes de texte.
Je ne remercierai jamais assez ce type. M'a sauvé des jours de recherche à la main!
la source
C'est mon opinion indépendante sur cette question que j'utilise pour mon propre travail. Il fonctionne dans SQL 2000 et versions ultérieures, permet les caractères génériques, le filtrage des colonnes et recherche la plupart des types de données normaux.
Une description de pseudo-code pourrait être
select * from * where any like 'foo'
Je ne le mets pas sous forme de proc car je ne veux pas le maintenir sur des centaines de bases de données et c'est vraiment pour un travail ad hoc de toute façon. N'hésitez pas à commenter les corrections de bugs.
la source
J'ai optimisé la réponse d'Allain Lalonde ( https://stackoverflow.com/a/436676/412368 ). Les valeurs numériques sont toujours prises en charge. Devrait être environ 4 à 5 fois plus rapide (1h03 contre 4h30), testé sur un ordinateur de bureau avec une base de données de 7 Go. http://developer.azurewebsites.net/2015/01/mssql-searchalltables/
la source
C'est ma façon de résoudre cette question. Testé sur SQLServer2008R2
la source
Merci pour le script vraiment utile.
Vous devrez peut-être ajouter la modification suivante au code si vos tables ont des champs non convertibles:
Chris
la source
J'ai une solution d'il y a un certain temps que je continuais à améliorer. Recherche également dans les colonnes XML si on le lui demande, ou recherche des valeurs entières si elle fournit une chaîne entière uniquement.
Source: http://fullparam.wordpress.com/2012/09/07/fck-it-i-am-going-to-search-all-tables-all-collumns/
la source
J'ai écrit une fois un outil pour moi-même pour faire exactement cette chose:
a7 SqlTools
C'est gratuit et open-source:
lien github
la source
Ici, une solution très douce et petite:
==========================
la source
Une autre façon d'utiliser JOIN et CURSOR:
la source
Vous devrez peut-être créer un index inversé pour votre base de données. Il est assuré d'être assez rapide.
la source
Supposons que si vous voulez obtenir toute la table avec un nom, un nom de colonne contienne logintime dans la base de données MyDatabase ci-dessous est l'exemple de code
la source
Si vous avez installé phpMyAdmin, utilisez sa fonction de recherche .
Sélectionnez votre DataBase.
Assurez-vous d'avoir sélectionné DataBase, pas une table, sinon vous obtiendrez une boîte de dialogue de recherche complètement différente.
la source
la source
À des fins de développement, vous pouvez simplement exporter les données des tableaux requis dans un seul HTML et effectuer une recherche directe dessus.
la source
Les outils clients de base de données (comme DBeaver ou phpMyAdmin ) prennent souvent en charge les moyens de recherche en texte intégral dans toute la base de données.
la source