Recherche de nom de colonne ayant valeur spécifique dans les tableaux dans certaines base de données
Est-il possible que je peux rechercher une colonne ayant valeur spécifique, je suis en train d'essayer de trouver dans toutes les tables dans une base de données?
Par exemple, j'ai
SELECT t.name AS table_name,
SCHEMA_NAME(schema_id) AS schema_name,
c.name AS column_name
FROM sys.tables AS t
INNER JOIN sys.columns c ON t.OBJECT_ID = c.OBJECT_ID
WHERE c.name LIKE '%VersionID%'
ORDER BY schema_name, table_name;
Que j'ai trouvé de la recherche. Il me donne les noms de table qui "versionID de la colonne" existe, mais comment puis-je rechercher pour retourner les noms de table, par exemple, ont une valeur de "35" pour cette colonne.
Merci d'avance,
Je m'excuse, peut-être que je ne suis pas d'être clair dans ma demande. Peut-être que cela ne peut être fait en SQL, car je n'ai pas trouvé quoi que ce soit au travers de mes recherches. Mais permettez-moi de clarifier.
L'exécution de ce script
SELECT t.name AS table_name,
SCHEMA_NAME(schema_id) AS schema_name,
c.name AS column_name
FROM sys.tables AS t
INNER JOIN sys.columns c ON t.OBJECT_ID = c.OBJECT_ID
WHERE c.name LIKE '%factor%'
--and table_name in (Select name from sysobjects where ratingVersionID = 35)
ORDER BY schema_name, table_name;
Sera de retour à ceci par exemple:
Mais disons, le "facteur" dans la colonne "AutoAge_Factor" le tableau n'a PAS tous les enregistrements correspondant à "35". Comment puis-je éliminer la table de retourner dans les résultats. Mais je préférerais vraiment le format des résultats de cette façon parce que je voudrais utiliser ce retour comme une boucle et faire un peu d'autres choses à l'intérieur de la boucle.
Merci encore!
OriginalL'auteur ScrumMaster Guy | 2012-07-24
Vous devez vous connecter pour publier un commentaire.
Cette modification à votre sql va générer plus de SQL que vous pouvez exécuter
Vous pouvez faire le SQL exécuté automatiquement si nécessaire), mais la syntaxe qui dépend de votre plate-forme. Vous pouvez également copier les résultats dans votre outil de requête et de les exécuter, si cela suffit
Assurez-vous - il suffit de modifier la chaîne à sortir les champs que vous ne voulez pas...
Cette fonction génère de nouvelles requêtes, la seule façon que je connaisse pour exécuter ces est avec un curseur, est-il possible de le faire en une seule requête sans curseur, dans le cas où je veux juste que tous les noms de table où la colonne x=y ?
OriginalL'auteur podiluska
Cela vous donnera les colonnes avec 35 et le tableau associé.
OriginalL'auteur isakavis
OriginalL'auteur isakavis