1
SQL Server 2008を持つ会社の仕事をしています。そのストアドプロシージャの1つは、存在しない列を参照しているか、または参照されているように見えますが、エラーはありません。in-clauseスコープ
クエリは、この構造を有する:
select col1, col2 from FOO
where col3 in
(select id from BAZ where datecreated between @date1 and @date2)
** BAZは[datecreated]という列が含まれていませんが、FOOはありません**私は次のように、列名を修飾するためのクエリを変更する場合は、そこに。 ISはエラーです:
select col1, col2 from FOO
where b in
(select id from BAZ where BAZ.datecreated between @date1 and @date2)
これは設計上の振る舞いである場合は、関連文書を教えてください。ありがとう
+1 - わかりやすくするために、外側のクエリのテーブル名でその列を修飾するのが通常は良い方法です。 – JNK
@JNK - これを見ないと、空のテーブルにつながる可能性があります(http://stackoverflow.com/questions/4594733/sql-server-2008-management-studio-not-checking-the-syntax-of -my-query/4594765#4594765)を削除する必要があります。 –