具有SqlDependency的IN运算符不工作

本文关键字:工作 运算符 IN SqlDependency 具有 | 更新日期: 2023-09-27 17:57:26

sqldependency是否适用于IN运算符?我的命令是:

SELECT n.PublishedAt
FROM dbo.Navigations n
WHERE NavigationGroupId IN (SELECT ng.Id FROM dbo.NavigationGroups ng
                            WHERE ng.SiteId = 1
                              AND ng.IsActive = 1
                              AND ng.[Type]= 'Secondary')
  AND n.IsActive = 1

我看了MSDN文档,但没有提到IN运算符。

提前谢谢。

具有SqlDependency的IN运算符不工作

来自文档:

语句不能包含子查询、外部联接或自联接。

IN通常映射到半联接。Damien_The_Unbeliever指出:

IN()被定义为子查询或表达式序列——OP问题中的表达式是子查询。

因此,它可能不受支持。

你能把IN表示为内部联接吗?如果IN查询为每一个外部行最多生成一行,这将保留语义。如果有更多,则行将被复制。不过,这对通知来说并不重要。它应该在完全相同的情况下发射。