J'essaie d'effectuer une validation de requête SQL par programmation en C# (sans invoquer la base de données actuelle). Essentiellement, j'aimerais qu'un utilisateur puisse entrer une vue, un UDF ou un SP et que ses dépendances soient validées immédiatement. L'utilisateur les entrerait dans un outil personnalisé pour définir les objets de base de données.Obtient des dépendances à partir de la requête SQL
Ainsi, si un utilisateur est entré:
CREATE VIEW someView AS SELECT name, address FROM users
je pourrais sortir de la dépendance des « utilisateurs » puis vérifiez contre mes collections d'objets de base de données qui sont stockées dans la mémoire (par exemple, les tables, vues, etc. ..) pour s'assurer que la dépendance existe dans l'un d'entre eux. Gardez à l'esprit les vues réelles/UDF/SP entrées dans mon application personnalisée sont très complexes et l'analyse moi-même n'est pas souhaitable. J'essaie actuellement de le faire en utilisant Microsoft.Data.Schema.ScriptDom.Sql.TSql100Parser. Cela fournit une méthode d'analyse qui renvoie une représentation DOM de la requête. Cependant, c'est un DOM terriblement complexe et je dois essentiellement écrire un analyseur complet juste pour cela.
Des idées/des suggestions? Merci!
donc vous voulez juste tirer les objets être utilisé dans la requête? – IEnumerator