Je suis en train de faire mes tests d'intégration plus idempotent. Une idée est d'exécuter la restauration après chaque test, l'autre idée était d'une certaine façon par programmation à l'analyse du texte, semblable à la case à cocher verte dans l'Analyseur de Requêtes ou de SSMS.
Comment puis-je obtenir SQL Server pour analyser ma commande sans l'exécuter à l'aide de ADO.NET?
Mise à JOUR: C'est ce que finalement travaillé comme il le souhaite:
using (DbCommand executeOnly = Factory.DbCommand())
{
executeOnly.Connection = command.Connection;
executeOnly.CommandType = CommandType.Text;
executeOnly.CommandText = "SET NOEXEC ON;";
executeOnly.Connection.Open();
executeOnly.ExecuteNonQuery();
}
//set more properties of command.
command.Execute();
Pour des raisons inexplicables, "SET PARSEONLY ON
" seulement travaillé dans l'Analyseur de Requêtes. Je ne pouvais pas définir ce sur une ADO.NET connexion. Il est tout aussi bien parce qu' PARSEONLY
semble à attraper les erreurs de syntaxe, ce qui n'est pas une erreur commune. SET NOEXEC ON
va attraper un plus large variétés d'erreurs, par exemple une vue qui fait référence à un manque de table ou de colonne ou la disparition d'un paramètre dans une procédure stockée.