2015-01-12 2 views
-6

SELECT * INTO 문을 사용하여 임시 테이블을 만들 수 있음을 알고 있습니다.SELECT INTO를 사용하지 않고 임시 테이블 만들기

그러나 SELECT 문을 사용하여 임시 테이블을 만드는 방법이 있습니까?

SELECT * FROM Customers과 같은 SQL을 가지고 있다고 가정 해 봅시다. 임시 테이블을 만들 때 아래와 같은 쿼리를 작성할 수 있습니까?

CREATE TABLE #Temp as (SELECT * FROM Customers) 
+0

어디에서 그런 식으로하고 싶습니까? –

+0

'CREAB 'TABLLE..INSERT INTO..SELECT' 구조체 – SouravA

답변

3

간단한 답은 다음과 같습니다. 아니오, 질문에 작성한 것을 할 수 없습니다.

만들고 2 가지 방법으로 임시 테이블 \ 테이블 변수를 채울 수는 SELECT INTO와

:

SELECT * 
INTO #TEMP 
FROM Customers 
WHERE 1=2 -- no matches will create an empty table 

이 소스 테이블의 컬럼과 데이터 형식을 취할 것이며, 그 (것)들에 근거를 둔 임시 테이블을 창조하십시오.

는 변수 또는 임시 테이블로 정면 테이블을 정의 : 당신이 눈 앞에 테이블 컬럼 및 유형을 정의해야이와

-- table variable 
DECLARE @Temp TABLE (Col1 int, Col2 int...); 
-- or a temp table 
CREATE TABLE #Temp (Col1 int, Col2 int...) 

INSERT INTO @tmp (Col1, Col2...) 
SELECT Col1, Col2... 
FROM Customers 

합니다.

+0

안녕하세요, Tanner, 답변 해 주셔서 감사합니다. –

-3

네, 당신이 가진 것을 정확하게 할 수 있습니다.

같은 쿼리 경우

CREATE TABLE UK_Customers AS 
SELECT * 
FROM Customers 
WHERE Region = 'UK'; 

는 정확히 무엇에 따라 :

SELECT * 
FROM Customers 
WHERE Region = 'UK'; 

원하는 결과를 제공,이 같은 결과를 포함하는 동일한 구조로 새 테이블을 만들 수 있습니다 '가상'테이블을 만들기 위해 CREATE VIEW를보고 싶을 수도 있습니다.

+0

안녕하세요, Tony, 귀하의 회신에 감사드립니다. 언급 한 코드를 사용해 보았을 때 '근처에'잘못된 구문으로 오류가 발생했습니다. 좀 도와 줄 수있어? 그것은 당신을 위해 일하고 있습니까? –

관련 문제