집 >데이터 베이스 >MySQL 튜토리얼 >잘못된 열 참조가 포함된 SQL Server 2008 쿼리가 어떻게 성공적으로 실행될 수 있습니까?
SQL Server 2008 Management Studio: 잘못된 구문에도 불구하고 예기치 않은 쿼리 실행
SQL Server 2008 Management Studio에서는 구문 오류와 관련하여 직관에 반하는 동작을 보이는 경우가 있습니다. 최근 사례로는 서브 쿼리 내 존재하지 않는 컬럼("hs_id")을 참조하는 쿼리가 오류 없이 실행되는 경우가 있었습니다.
이 동작을 이해하려면 쿼리 구조가 중요합니다. 외부 DELETE
문은 삭제할 행을 식별하기 위해 하위 쿼리를 사용하여 Photo
테이블을 대상으로 합니다. 이 하위 쿼리는 "id = 142"인 HotelSupplier
테이블에서 "hs_id"를 선택합니다.
하위 쿼리에 오류가 있습니다. HotelSupplier
에 "hs_id"라는 열이 없습니다. 올바른 열 이름은 "hs_key"입니다. 그러나 외부 쿼리에는 "hs_id"( 테이블에 있음)가 포함되어 있습니다Photo
. 이를 통해 SQL Server는 Photo
테이블
결과적으로 하위 쿼리는 Photo
테이블의 데이터를 기반으로 "hs_id" 값 집합을 반환하며, 이 값은 DELETE
작업을 필터링하는 데 사용됩니다. 초기 구문 오류에도 불구하고 쿼리가 성공적으로 실행된 것은 이러한 암시적 열 확인에서 비롯되었습니다.
이러한 동작은 잠재적으로 놀라운 일이지만 본질적으로 문제가 되는 것은 아닙니다. 이는 모호성을 방지하고 데이터 무결성을 유지하기 위해 명시적인 열 참조(정규화된 이름 또는 별칭 사용)의 중요성을 강조합니다.
위 내용은 잘못된 열 참조가 포함된 SQL Server 2008 쿼리가 어떻게 성공적으로 실행될 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!