2009-12-03 2 views

답변

12

당신은 하위 사용할 수는

SELECT a,b,c INTO NewTable 
FROM (SELECT a,b,c 
FROM TheTable 
WHERE a Is Null) 
+2

서브 쿼리를 사용하는 이유는 무엇입니까? 즉 내부 쿼리에 INTO를 추가하지 않는 이유는 무엇입니까? – onedaywhen

+0

결과 '테이블'에는 키가 없으므로 테이블이 아예 없습니다. – onedaywhen

9

:

SELECT * 
INTO  NewTable 
FROM  OldTable 
+0

실제로 상황이 실제로 * Access * Replace * NewTable 인 경우 실제로 테이블에 항목을 추가 할 수 있습니다. 그러면 테이블을 이해할 때 사용자 요청과 완전히 일치하게됩니다. – Romain

+0

@Romain Muller : 접근에 불을 붙이고 질문에 대한 답을 알아내는 것이 어떨까요? –

+2

사실 Access QBE에서 해당 SQL을 실행하면 기존 테이블을 바꿀 것인지 묻는 메시지가 나타납니다. SetWarnings ON으로 DoCmd.RunSQL과 함께 실행하면 프롬프트가 표시됩니다. DAO에서 실행하려고하면 테이블이 이미 있기 때문에 실패합니다. 어떠한 경우에도 레코드를 기존 테이블에 추가하지는 않습니다. –

0
Select * 
Into newtable 
From somequery 
1

사용자 인터페이스를 통해 수행 할 경우, 당신은 또한 할 수 있습니다

A) 작성 및 선택 쿼리를 테스트합니다. 저장해.

B) 만들기 테이블 쿼리를 만듭니다. 표시 할 테이블을 묻는 메시지가 표시되면 쿼리 탭과 저장된 쿼리를 선택하십시오.

C) 만들려는 표의 이름을 지정하십시오.

D) 커피를 만들 이동 (맛과 테이블의 크기)

3

첫 번째 쿼리에 따라 필요한 키, 제약, 도메인 확인, 참조있는 테이블을 생성 그런 다음 INSERT INTO..SELECT 구문을 사용하여 채 웁니다.

SELECT..INTO..FROM 구조로 유혹하지 마십시오. 결과 테이블에는 키가 없기 때문에 실제로는 테이블이 아닙니다. 적절한 테이블로 시작한 다음 데이터를 추가하는 것이 좋습니다. 나쁜 데이터를 쉽게 트랩 할 수 있습니다.

SELECT..INTO 절이 잘못 될 수있는 예를 보려면 NULL 값이 포함 된 열이 생길 수 있으며 이벤트가 끝나면 열을 NOT NULL로 변경할 수 있으므로 엔진이 NULLs, 그러므로 NULL s를 포함하는 NOT NULL 컬럼으로 끝날 것입니다!

또한 '열어 본'표를 만드는 것을 고려해보십시오. CREATE VIEW 기본 테이블보다는 SQL DDL을 사용하십시오.

관련 문제