SQL Serverで「No Join Predicate」とはどういう意味ですか?
MSDN「Missing Join Predicate Event Class」は、「結合述語のないクエリが実行されていることを示しています」と述べています。 しかし、残念ながら、それほど簡単ではないようです。 たとえば、非常に単純な状況: create table #temp1(i int); create table #temp2(i int); Select * from #temp1, #temp2 option (recompile); テーブルにはデータがなく、警告もありませんが、明らかに結合述語はありません。 私はSQL Server 2005の(同じリンク、ちょうど他のサーバーバージョン)のドキュメントを見てみる場合は、余分な文章があります:「このイベントはの両側が1行以上のリターンに参加した場合にのみ生成されます。」これはなるだろう前の状況での完全な意味。データがないため、両側は0行を返し、警告を返しません。行を挿入すると、警告が表示されます。うんいいね。 しかし、次の混乱する状況のために、両方のテーブルに同じ値を挿入します。 Insert into #temp1 (i) values (1) Insert into #temp1 (i) values (1) Insert into #temp2 (i) values (1) Insert into #temp2 (i) values …