CREATE TABLE EMPL_DEMO AS SELECT * FROM employees WHERE 1=2;
나는 인터넷 어딘가 에서이 진술을 읽었지만 WHERE 1=2.
누구든지 설명해 주시겠습니까?
CREATE TABLE EMPL_DEMO AS SELECT * FROM employees WHERE 1=2;
나는 인터넷 어딘가 에서이 진술을 읽었지만 WHERE 1=2.
누구든지 설명해 주시겠습니까?
답변:
이 유형의 명령은 일반적으로 한 테이블의 구조를 다른 테이블로 복사하는 데 사용됩니다. 이 경우은의 EMPL_DEMO열 구조가 동일합니다 employees. 키 또는 제한을 제외 .
은 1=2항상로 평가 False되는이 행 중 하나를 복사에서 당신을 방지 할 수 있습니다.
CREATE TABLE new_table LIKE old_table
LIKE old_table... SQL 서버 구조되지 않습니다
이 구문은 동일하지만 데이터가없는 동일한 구조의 테이블을 만드는 것이 더 분명합니다.
CREATE TABLE EMPL_DEMO AS SELECT * FROM employees limit 0;
LIMIT. 그러나 MSSQL에는 그것이 부족한 것 같습니다 (MSSQL을 사용하지 않는 좋은 이유라고 생각합니다). 분명히 그들은 가지고 TOP있지만 Google 결과에는 사용하지 않는 사람들이 너무 많아서 주변에 약간의 hijink가있을 것입니다.
다음을 제외한 테이블의 구조를 복사하는 데 유용 할 수 있습니다. 제약 조건, 키, 인덱스, ID 속성 및 데이터 행을 .
이 쿼리는 조건이 항상로 평가되므로 EMPL_DEMO직원 테이블에서 복사 된 행이없는 테이블을 만듭니다 .WHERE 1=2FALSE
CREATE TABLE EMPL_DEMO
AS
SELECT *
FROM employees
WHERE 1=2;
내 친구, Google을 신뢰하십시오. 해당 진술을 Google에 검색했을 때 첫 번째 결과의 하단에서 :
예를 들면 :
CREATE TABLE suppliers AS (SELECT * FROM companies WHERE 1=2);이렇게하면 companies 테이블의 모든 열을 포함하지만 companies 테이블의 데이터는 포함하지 않는 supplier라는 새 테이블이 생성됩니다.
신탁:
CREATE TABLE EMPL_DEMO AS SELECT * FROM employees WHERE 1=2; //just structure not data
CREATE TABLE EMPL_DEMO AS SELECT * FROM employees WHERE 1=1; //ststructure and data
Teradata 데이터베이스에 대한 더 나은 이해 :
CREATE TABLE EMPL_DEMO AS Memployees with no data; //structure
CREATE TABLE EMPL_DEMO AS Memployees with data; //structure and data