2015-06-22 157 views
3

sqldependency與IN運算符一起工作嗎? 我的命令是:IN運算符與SqlDependency不起作用

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 

我當時一看至IN操作符提到MSDN Dodumentation但沒有。

在此先感謝。

+2

「該語句不得包含子查詢,外連接或自連接。」嗯,IN通常映射到一個半連接。可能不支持。你能表達IN作爲內連接嗎? – usr

+0

@usr - 你已經更直接地釘牢了它 - ['IN()'](https://msdn.microsoft.com/en-GB/library/ms177682.aspx)被定義爲子查詢或者表達式 - OP中的問題是子查詢。而你的報價涵蓋了其餘部分。 –

+0

@usr,我認爲你應該將你的評論轉換爲答案,因此可以提高評價。因爲別人會在某個時候觸及這個問題。 –

回答

3

從文檔:

「語句不能包含子查詢,外連接,或自連接。」

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

IN()被定義爲子查詢或表達式序列 - OP中的問題是子查詢。

因此可能不支持。

你能表達IN作爲內連接嗎?如果IN查詢爲每個外部行最多生成一行,這將保留語義。如果有更多的行將被複制。不過,通知無關緊要。它應該在完全相同的情況下啓動。

+1

thx,使用內部連接解決 – Rana