源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

C#中验证sql语句是否正确(不执行语句)

  • 时间:2022-11-03 15:55 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:C#中验证sql语句是否正确(不执行语句)
[b]SET PARSEONLY [/b]检查每个 Transact-SQL 语句的语法并返回任何错误消息,但不编译和执行语句。 SET PARSEONLY { ON | OFF } 当 SET PARSEONLY 为 ON 时,SQL Server 只分析语句。当 SET PARSEONLY 为 OFF 时,SQL Server 编译并执行语句。 SET PARSEONLY 的设置是在分析时设置,而不是在执行或运行时设置。 在存储过程或触发器中不要使用 PARSEONLY。如果 OFFSETS 选项为 ON 而且没有出现错误,则 SET PARSEONLY 返回偏移量。 [b]SET NOEXEC (Transact-SQL) [/b]编译每个查询但不执行查询。 SET NOEXEC { ON | OFF } 当 SET NOEXEC 为 ON 时,SQL Server 将编译每一批处理 Transact-SQL 语句但并不执行它们。当 SET NOEXEC 设置为 OFF 时,所有批处理将在编译后执行。 SQL Server 中的语句执行包含两个阶段:编译和执行。该设置可用于让 SQL Server 在执行 Transact-SQL 代码时,验证代码中的语法和对象名。它也可以用于调试通常是较大的批处理中的部分语句。 SET NOEXEC 设置是在执行或运行时设置,而不是在分析时设置。 [b]SET PARSEONLY的代码:[/b]
[u]复制代码[/u] 代码如下:
public bool ValidateSQL(string sql)      {          bool bResult;          SqlCommand cmd = _conn.CreateCommand();          cmd.CommandText = "SET PARSEONLY ON";          cmd.ExecuteNonQuery();          try          {              cmd.CommandText = sql;              cmd.ExecuteNonQuery();              bResult = true;          }          catch (Exception ex)          {              bResult = false;          }          finally          {              cmd.CommandText = "SET PARSEONLY OFF";              cmd.ExecuteNonQuery();          }          return bResult;      }
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部