1
SQL Server 2008이있는 회사에서 일부 작업을하고 있습니다. 해당 저장 프로 시저 중 하나가 존재하지 않는 열을 참조하거나 참조하는 것으로 보이지만 오류가 없습니다.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)를 사용하면된다. –