Wie kann ich programmgesteuert überprüfen (analysieren) die Gültigkeit einer TSQL-Anweisung?

Ich versuche, mich um meine integration tests mehr idempotent. Eine Idee war zum ausführen rollback nach jedem test, die andere Idee war, etwas wie ein Programm analysiert den text, ähnlich wie das grüne Kontrollkästchen im Query Analyzer oder SSMS.

Wie bekomme ich SQL Server zu analysieren ist mein Befehl, ohne läuft es mit ADO.NET?

UPDATE:
Dies ist, was schließlich funktionierte wie gewünscht:

using (DbCommand executeOnly = Factory.DbCommand())
{
    executeOnly.Connection = command.Connection;
    executeOnly.CommandType = CommandType.Text;
    executeOnly.CommandText = "SET NOEXEC ON;" + sqlCommand;
    executeOnly.Connection.Open();
    executeOnly.ExecuteNonQuery();
}
//set more properties of command.
command.Execute();

Aus unerklärlichen Gründen, "SET PARSEONLY ON" funktioniert nur im Query Analyzer. Ich konnte nicht diese Einstellung auf ein ADO.NET -Verbindung. Es ist nur gut, weil PARSEONLY scheint zu fangen, nur syntax-Fehler, das ist nicht ein häufiger Fehler. SET NOEXEC ON fangen einen breiteren Sorten von Fehlern, wie eine Ansicht, die auf eine fehlende Tabelle oder Spalte oder ein fehlender parameter in einer gespeicherten Prozedur.

InformationsquelleAutor der Frage MatthewMartin | 2010-06-21

Schreibe einen Kommentar