如何使用dapper解析Sql脚本?(将PARSEONLY设置为+Dapper)
本文关键字:PARSEONLY 设置 +Dapper dapper 何使用 解析 Sql 脚本 | 更新日期: 2023-09-27 18:29:58
我想检查&解析sql脚本,所以我搜索了一下,发现了这样的
SET PARSEONLY ON
SELECT * FROM [dbo].[Categories] --Query To Parse
我使用dapper,所以我写这样的方法
public bool IsValidSqlScript(string sqlScript)
{
using (SQLConnection)
{
using (SQLTransaction)
{
var status = SQLConnection.Execute("SET PARSEONLY ON " + sqlScript);
// OR
// var status = SQLConnection.Query("SET PARSEONLY ON " + sqlScript);
}
}
return status;
}
如何获取状态,如果存在任何错误,还可以获取错误列表???
SET PARSEONLY ON
SELECT * FR OM [dbo].[Categories] --Query To Parse
>>> false
>>> Msg 102, Level 15, State 1, Line 2 Incorrect syntax near 'FR'.
您很接近,但您的状态变量有问题。您在SQLTransactionusing语句中声明它,然后尝试在该范围之外返回它。
您将希望使用try/catch块来执行查询,这样您就可以知道sqlScript
何时有效。如果你输入了catch块,它是无效的,如果你没有输入,那么它是有效的。
代码应类似于以下内容。。。
public bool IsValidSqlScript(string sqlScript)
{
bool status;
try
{
using (SQLConnection)
{
using (SQLTransaction)
{
SQLConnection.Execute("SET PARSEONLY ON " + sqlScript);
}
}
status = true;
}
catch(Exception e)
{
status = false;
)
return status;
}