309 votes

Comment puis-je trouver une valeur n'importe où dans une base de données SQL Server?

Étant donné un #, comment puis-je découvrir dans quelle table et colonne il pourrait être trouvé à l'intérieur?

Je me fiche de savoir si c'est rapide, ça doit juste marcher.

342voto

kd7 Points 16740

Cela pourrait vous aider. -de Narayana Vyas. Il recherche dans toutes les colonnes de toutes les tables dans une base de données. Je l’ai utilisé avant et ça marche.

Il s’agit de la Proc stockée depuis le lien ci-dessus - le seul changement que j’ai fait était son remplacement par la table temporaire pour une variable de table si vous n’avez pas à retenir pour le laisser tomber chaque fois.

81voto

David Smithers Points 600

Si vous avez besoin d'exécuter une telle recherche qu'une seule fois, alors vous pouvez probablement aller avec l'un des scripts déjà montré ici. Mais sinon, je vous recommande d'utiliser ApexSQL de Recherche pour cela. Il est gratuit SSMS addin et il m'a vraiment sauvé beaucoup de temps.

Avant d'exécuter l'un des scénarios ci-dessus, vous devez le personnaliser en fonction du type de données que vous souhaitez seerach. Si vous savez que vous êtes à la recherche pour une colonne datetime il n'est pas nécessaire de rechercher dans les colonnes nvarchar. Cela permettra d'accélérer toutes les requêtes ci-dessus.

79voto

Allain Lalonde Points 28717

Basé sur la réponse de bnkdev j’ai modifié le Code de Narayana pour rechercher toutes les colonnes numériques même ceux.

Ça va fonctionner plus lentement, mais cette version détecte effectivement tous correspond à non seulement celles trouvées dans les colonnes de texte.

Je ne peux pas remercier ce mec assez. M’a sauvé jours de recherches à la main !

43voto

Tim Lehner Points 8122

Il s’agit de mon point de vue indépendant sur cette question que j’utilise pour mon propre travail. Il travaille à SQL2000 et une plus grande, permet à des caractères génériques, colonne de filtrage et recherche la plupart des types de données normal.

Une description de pseudo-code pourrait être``

Je ne le mets sous forme de proc car je ne veux pas de la maintenir sur des centaines de DBs, et c’est vraiment pour un travail spécial quand même. S’il vous plaît n’hésitez pas à formuler des observations sur les corrections de bugs.

4voto

Rab_ Points 53

Merci pour le script vraiment utile.

Vous devrez peut-être ajouter la modification suivante au code si votre tables possèdent des champs non convertible :

Chris

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X