我正在努力使我的集成测试更具幂等性.一个想法是在每次测试后执行回滚,另一个想法是一些程序如何以编程方式解析文本,类似于查询分析器或SSMS中的绿色复选框.
如何在不使用ADO.NET运行SQL Server的情况下解析命令?
更新: 这是最终按预期工作的:
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();
Run Code Online (Sandbox Code Playgroud)
出于莫名其妙的原因," SET PARSEONLY ON
"仅在查询分析器中有效.我无法在ADO.NET连接上设置它.它也是如此,因为PARSEONLY
似乎只捕获语法错误,这不是一个常见的错误. SET NOEXEC ON
将捕获更多种类的错误,例如引用缺少的表或列的视图或存储过程中缺少的参数.
我正在寻找c#中的查询验证器,它允许我从文本框中解析SQL文本,并在发送它执行之前验证它是否正确.(MS SQL或DB2查询).
我想编写一个SQL迁移工具.该工具必须:
我可以使用一些验证框架,或者我可以使用nHibernate吗?