SELECT INTO 테이블 쿼리에서 WHERE 1 = 2의 요점은 무엇입니까?


39

SQL Server의 기존 테이블에서 새 테이블을 만들려면 다음을 수행하십시오.

SELECT * into Table2
from Table1
WHERE 1=2

where 절의 요점은 무엇입니까? where 절없이 시도했지만 정상적으로 실행되었습니다. 인터넷의 많은 예제 에서이 where 절을 보았지만 필요한 이유는 아닙니다.

답변:


54

WHERE 1=2해당 SELECT INTO쿼리에 절 을 넣은 이유 는 data없이 기존 테이블의 필드 복사를 작성하기위한 것입니다 .

이 작업을 수행 한 경우 :

select *
into Table2
from Table1

Table2Table1데이터 행을 포함하여의 정확한 복제본이 됩니다. 그러나에 포함 된 데이터를 Table1원하지 않고 테이블 구조 만 원하는 경우 WHERE모든 데이터를 필터링 하는 절을 추가합니다 .

BOL SELECT INTO참조 인용문 :

SELECT… INTO는 기본 파일 그룹에 새 테이블을 만들고 결과 행을 쿼리의 테이블에 삽입합니다.

귀하의 경우 WHERE절에 행을 결과했다, 아무도는 새로운 테이블에 삽입되지 않습니다 : 따라서, 당신은 (이 경우 원하는 결과가 될 것입니다) 데이터없이 원래 테이블의 중복 스키마와 끝까지.

TOP (0)예를 들어 다음 과 같은 효과를 얻을 수 있습니다 .

select top (0) *
into Table2
from Table1;

참고 : SELECT INTO소스 테이블의 인덱스, 제약 조건, 트리거 또는 파티션 스키마는 복제되지 않습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.