在使用SqlDependency
和SqlMonitor
获取数据库更改通知时,我知道有certain个规则来构建查询。
我很好奇的是Stored Procedure
的所需结构是什么;据我所知,通过遵循规则,我可以使用sql通知服务来进行简单的SELECT
查询。
if
中有控制流(else
,while
或SP
'时会发生什么?是否有任何规则集?
同样的规则也适用于Function
吗?
答案 0 :(得分:2)
Creating a Query for Notification:
当注册通知的命令包含多个语句时,数据库引擎会为批处理中的每个语句创建通知。
因此,如果您有控制流(if,else,while等),那么实际执行的路径就是设置通知的路径。如果未采用分支,则不会设置通知,因为在该分支中不执行任何语句。如果循环重复执行语句,则会为每次执行设置单独的通知。
对于UDF,唯一重要的是那些在语句中基本内联的内容,因为几乎任何其他UDF都会使查询对通知无效。那些内联的UDF就像在语句中编写了扩展函数定义一样。换句话说,他们不会改变与通知相关的任何内容。 声明是否重要。
它的要点是只有SELECT才能设置通知。当您执行SP(或批处理)时,不会为' SP'设置通知。本身,但是正在执行的每个SELECT语句都设置了通知。