2010-08-20 6 views
1

SQL 쿼리 결과를 테이블에 넣고 싶지만 SELECT 열 이름을 INTO NEWTABLE (생성되지 않음)이라고하면 한 번만 수행하면되지만 다시 쿼리를 실행하면 테이블이 이미 있다고합니다. 내가하고있는 일은 newtable에 대한 쿼리의 결과이며, 매주마다 그것을 실행할 것이므로 오류가 발생해서는 안된다 : 이미 테이블이 존재한다.테이블에 SQL 쿼리 결과

예 : 다음 쿼리 결과를 Newtable EmployeeDetails에 넣고 매주 실행할 것입니다.

select a.Name, b.Id 
from Database1 a left join 
    Database2 b 
ON a.Id = b.Id 
+0

스크립트가 새 테이블을 한 번만 만들고 싶습니까? 그런 다음 매주 기존 데이터에 데이터를 추가하면됩니까? –

+0

[SQL 쿼리 결과에서 테이블을 만드는 방법?] (http://stackoverflow.com/questions/3534735/how-to-create-a-table-from-the-results-of-a)의 중복 -sql-query) –

+0

@OMG : 전혀 다른 시나리오가 아닙니다. –

답변

2

확인이

존재 SQL 서버에 대한 예를

IF EXISTS (SELECT * FROM sys.objects 
WHERE object_id = OBJECT_ID(N'[dbo].[YOurTableName]') 
AND type in (N'U')) 
BEGIN 
     DROP TABLE [dbo].[YOurTableName 
END 

select * into [dbo].[YOurTableName] 
from ...... 
+0

데이터를 완전히 바꾸려면 좋을 것이다. – HLGEM

+0

나는 select into를 사용하고 싶다고 생각했다 .... – SQLMenace

3

대신 INSERT INTO를 사용하십시오.

그러나 처음에 삽입 호출하기 전에 테이블이 이미 작성되어 있는지 확인

INSERT INTO table1 (column1, column2, ...) 
SELECT column3, column4, ... 
FROM table2 
0

사용 삽입 -

(수 있도록 TBL에서 X, Y, Z를 선택 newtbl에 삽입 먼저 테이블을 작성하십시오.

+0

나는 그걸 시도했지만 테이블 이름이 같아서 나에게 같은 오류를 준다. 테이블이 이미 존재한다. – User7354632781

0

현재 SQL 연결 기간 동안 생성 된 테이블 만 필요하면 임시 테이블을 작성하십시오.

CREATE TEMPORARY TABLE newtable SELECT the_rest_of_your_query

또는, 당신은 일주일 동안 주변의 테이블을 유지하지만 매주 완전히 대체 할 경우, 반드시 먼저 사라합니다 IF와

DROP TABLE IF EXISTS newtable

2
IF EXISTS (SELECT * FROM sys.objects 
    WHERE object_id = OBJECT_ID(N'[dbo].[YOurTableName]') AND type in (N'U')) 
     //INSERT INTO STATEMENT 
ELSE 
    //SELECT INTO STATEMENT THAT U ALREADY HAVE