【问题标题】:How parse Sql Script with dapper? (SET PARSEONLY ON + Dapper)如何用 dapper 解析 Sql Script? (设置 PARSEONLY ON + Dapper)
【发布时间】:2015-01-07 02:50:00
【问题描述】:

我想检查和解析 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'.

【问题讨论】:

    标签: c# sql sql-server parsing dapper


    【解决方案1】:

    您已经接近了,但您的状态变量有问题。您在 SQLTransaction using 语句中声明它,然后尝试在该范围之外返回它。

    您需要使用 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;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-29
      • 1970-01-01
      • 2012-11-19
      • 2014-04-27
      • 1970-01-01
      相关资源
      最近更新 更多