Je suis un peu nouveau pour SQL et je suis venu avec un problème que je ne pouvais pas résoudre même si j'ai pensé à ce sujet pendant deux ou trois heures. Le problème que je suis sur le point de présenter des états que j'ai quelques tables et des procédures stockées dans une base de données aléatoire sur un serveur SQL. Ces tables et années SP sont nommés avec les formats suivants:Obtenir le nom du schéma et le nom de la table à la fois
[schema name].[table name]
et
[schema name].[sp name]
Ma tâche est de capturer ces deux valeurs, que ce soit pour un nom de table ou pour un SP. J'ai exécuté l'instruction (qui contient 4 requêtes SQL) ci-dessous sur C# puis en lisant les valeurs sortantes via le SqlDataReader, j'ai pensé que j'avais apparié les noms de schéma avec les noms de table/SP à côté d'eux. La plupart d'entre eux l'ont fait de toute façon, mais je dois tous les faire correspondre correctement.
if (requestCode == 1)
{
SetSpecificList("USE " + db_name + "; SELECT * FROM sys.tables", "USE " + db_name + "; SELECT * FROM INFORMATION_SCHEMA.TABLES", tablesList, requestCode);
}
else if (requestCode == 2)
{
SetSpecificList("USE " + db_name + "; SELECT * FROM sys.procedures", "USE " + db_name + "; SELECT * FROM INFORMATION_SCHEMA.ROUTINES", SPList, requestCode);
}
J'apprécierais un avis sur la combinaison de deux instructions SQL (simplement une déclaration) pour obtenir le nom complet d'une table/SP, au lieu de le diviser comme [schema name][table name]
, en deux requêtes.
J'ai utilisé le deuxième extrait de code que vous avez fourni pour moi, et il fonctionne de la façon dont j'ai besoin. Je vous remercie! –