为通知创建存储过程和函数的规则

时间:2014-04-16 05:33:48

标签: c# sql sql-server sqldependency

在使用SqlDependencySqlMonitor获取数据库更改通知时,我知道有certain个规则来构建查询。

我很好奇的是Stored Procedure的所需结构是什么;据我所知,通过遵循规则,我可以使用sql通知服务来进行简单的SELECT查询。

  1. if中有控制流(elsewhileSP'时会发生什么?是否有任何规则集?

  2. 同样的规则也适用于Function吗?

1 个答案:

答案 0 :(得分:2)

Creating a Query for Notification

  

当注册通知的命令包含多个语句时,数据库引擎会为批处理中的每个语句创建通知。

因此,如果您有控制流(if,else,while等),那么实际执行的路径就是设置通知的路径。如果未采用分支,则不会设置通知,因为在该分支中不执行任何语句。如果循环重复执行语句,则会为每次执行设置单独的通知。

对于UDF,唯一重要的是那些在语句中基本内联的内容,因为几乎任何其他UDF都会使查询对通知无效。那些内联的UDF就像在语句中编写了扩展函数定义一样。换句话说,他们不会改变与通知相关的任何内容。 声明是否重要。

它的要点是只有SELECT才能设置通知。当您执行SP(或批处理)时,不会为' SP'设置通知。本身,但是正在执行的每个SELECT语句都设置了通知。