【发布时间】:2011-03-06 06:59:42
【问题描述】:
我正在尝试使我的集成测试更具幂等性。一个想法是在每次测试后执行回滚,另一个想法是如何以编程方式解析文本,类似于查询分析器或 SSMS 中的绿色复选框。
如何让 SQL Server 解析我的命令而不使用 ADO.NET 运行它?
更新: 这就是最终如愿以偿的工作:
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();
由于莫名其妙的原因,“SET PARSEONLY ON”只在查询分析器中有效。我无法在 ADO.NET 连接上设置它。这也很好,因为PARSEONLY 似乎只捕获语法错误,这不是常见的错误。 SET NOEXEC ON 将捕获更多种类的错误,例如引用缺失表或列或存储过程中缺失参数的视图。
【问题讨论】:
-
我假设它是
executeOnly.CommandText = "SET NOEXEC ON; " + sqlCommand;:3
标签: c# .net sql-server tsql ado.net