Chinaunix首页 | 论坛 | 博客
  • 博客访问: 31881
  • 博文数量: 15
  • 博客积分: 386
  • 博客等级: 一等列兵
  • 技术积分: 185
  • 用 户 组: 普通用户
  • 注册时间: 2012-05-25 15:22
文章分类

全部博文(15)

文章存档

2012年(15)

我的朋友
最近访客

分类: 嵌入式

2012-06-29 19:39:10

SET PARSEONLY
检查每个 Transact-SQL 语句的语法并返回任何错误消息,但不编译和执行语句。
SET PARSEONLY { ON | OFF }
当 SET PARSEONLY 为 ON 时,SQL Server 只分析语句。当 SET PARSEONLY 为 OFF 时,SQL Server 编译并执行语句。
SET PARSEONLY 的设置是在分析时设置,而不是在执行或运行时设置。
在存储过程或触发器中不要使用 PARSEONLY。如果 OFFSETS 选项为 ON 而且没有出现错误,则 SET PARSEONLY 返回偏移量。

SET NOEXEC (Transact-SQL)
编译每个查询但不执行查询。
SET NOEXEC { ON | OFF }
当 SET NOEXEC 为 ON 时,SQL Server 将编译每一批处理 Transact-SQL 语句但并不执行它们。当 SET NOEXEC 设置为 OFF 时,所有批处理将在编译后执行。
SQL Server 中的语句执行包含两个阶段:编译和执行。该设置可用于让 SQL Server 在执行 Transact-SQL 代码时,验证代码中的语法和对象名。它也可以用于调试通常是较大的批处理中的部分语句。

SET NOEXEC 设置是在执行或运行时设置,而不是在分析时设置。

 


SET PARSEONLY的代码:


点击(此处)折叠或打开

  1. public bool ValidateSQL(string sql)
  2. {
  3.     bool bResult;

  4.     SqlCommand cmd = _conn.CreateCommand();
  5.     cmd.CommandText = "SET PARSEONLY ON";
  6.     cmd.ExecuteNonQuery();
  7.     try
  8.     {
  9.         cmd.CommandText = sql;
  10.         cmd.ExecuteNonQuery();
  11.         bResult = true;
  12.     }
  13.     catch (Exception ex)
  14.     {
  15.         bResult = false;
  16.     }
  17.     finally
  18.     {
  19.         cmd.CommandText = "SET PARSEONLY OFF";
  20.         cmd.ExecuteNonQuery();
  21.     }

  22.     return bResult;
  23. }

参考:
阅读(851) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~