2014-04-21 2 views
1

SQL Server에서 SELECT 쿼리를 기반으로 새 테이블을 만드는 방법이 있습니까?SQL Server에서 SELECT 쿼리를 사용하여 테이블 만들기

모든 필드를 수동으로 입력하고 싶지 않습니다 (테이블은 쿼리 필드를 기반으로 자동 생성되어야 함).

은 이미 시도 :

CREATE TABLE new_table AS (SELECT * FROM ...); 

했지만 작동하지 않았다.

답변

0

필자는 선택 항목의 별칭을 지정해야했지만 이름이없는 경우 현재 쿼리의 별칭이 필드의 별칭이라고 생각해야합니다.

select 
    * 
into #tempabc 
from (
    Select 'a' [test] 
    union 
    Select 'b' [test] 
) a 

select * from #tempabc 
+0

감사하지만 두 옵션 모두 대상 테이블의 필드 이름을 선언해야합니다. 이것이 자동화 될 수 있습니까? – SQLsavvy

+0

첫 번째 옵션에서 열을 지정하지 않았습니다. 선택 영역에서 별칭을 지정해야했습니다. 또한이 질문은 의도와 관련하여 크게 달라졌습니다. – UnhandledExcepSean

+0

감사합니다. 분리 된 값을 Select * 쿼리로 바꿨습니다. – SQLsavvy

3

SQL Server에 대해 잘못된 구문을 사용하고 있습니다. 대신, 시도 : 다시 테이블을 사용하지 않을 때

SELECT * INTO new_table FROM old_table 
+0

감사하지만,이 경우에는 "OLD_TABLE"없다. "old_table"대신 런타임 SELECT 쿼리를 사용하고 싶습니다. – SQLsavvy

+1

같은 원리가 적용됩니다 :'SELECT * INTO new_table FROM (/ * some query * /) t; – Mureinik

1

이 어디 조건,이

select * into NewTable from oldtable 
0
Maybe you could try like this in your query: 

create table #temp(@field1 int,@field2 varchar(10)) 

insert into #temp 

     select a,b from tableFrom 



select * from #a 

처럼

drop table #a 
+0

질문은 테이블을 즉시 생성하는 것입니다. 생성 된 테이블에 데이터를 삽입하는 것에 대한 정보가 없습니다. – mohan111

+0

쿼리가 수행 할 작업을 pls에서 설명 할 수 있습니까? –

+1

@ mohan111, 귀하의 의견은 귀하의 답변에도 적용됩니다. "1 = 3"을 추가하면 작은 문제가 해결됩니다. –

-1
SELECT * INTO new_table FROM old_table where 1=2 

을 진행할 수 있습니다 쿼리가 데이터를 반환하지 않아야합니다.

+0

이 질문에 대해서는 실제로 언급하지 않았지만 그런 빈 테이블을 만들 수 있는지는 몰랐습니다. 알고 굉장한. 감사! – UnhandledExcepSean

3
CREATE TABLE NEW_TABLE 
AS 
SELECT employee_id, last_name, 
FROM 
employees 
+0

모든 필드를 수동으로 입력하고 싶지 않습니다 (테이블은 쿼리의 필드를 기반으로 자동 생성되어야 함). – SQLsavvy

관련 문제