2014-02-13 2 views
2

레코드를 복사하지 않고 기존 테이블의 구조를 복사하여 새로운 빈 테이블을 만들고 싶습니다. SQL Azure를 사용하고 있습니다.Azure의 기존 테이블에서 빈 SQL 테이블 만들기

시도 1 :

SELECT * INTO newTable 
FROM oldTable 
WHERE 1 = 0 

반환 오류 :

Msg 40510, Level 16, State 1, Line 1 
Statement 'SELECT INTO' is not supported in this version of SQL Server. 

시도 2 ​​:

CREATE TABLE newTable 
AS (SELECT * FROM oldTable WHERE 1=0) 

반환 오류 :

Msg 102, Level 15, State 1, Line 2 
Incorrect syntax near '('. 

세 번째 행운? 나는 명백한 것을 놓쳤는가, 나는 아이디어가 없다.

업데이트 :이 절차를 수행 결국 :

액세스 MDB에 연결된 테이블로
  • 추가 푸른 테이블
  • 복사 구조 로컬 테이블을
  • 명칭 변경 테이블
  • 'SQL Server 가져 오기 및 내보내기 마법사'를 사용하여 Azure로 내 보낸 경우

답변

1

SELECT INTO는 Azure SQL Database에서 지원되지 않습니다. 대상 테이블이 이미 있으면 INSERT INTO를 사용하여 대상 테이블을 채울 수 있습니다. Kevin Yu의 게시물을 참조하십시오 : http://blog.kevinyu.org/2012/06/workaround-for-select-into-in-sql-azure.html.

SELECT INTO가 지원되지 않는 이유는 SQL Azure의 모든 테이블에 클러스터 된 인덱스가 있어야하기 때문입니다. SELECT INTO 구문은 클러스터형 인덱스가없는 테이블을 생성합니다.

이에서 이에 대한 열린 연결 문제 : http://connect.microsoft.com/SQLServer/feedback/details/776409/add-select-into-to-sql-azure

처음 정의 된 클러스터 된 인덱스와 대상 테이블을 만들지 않고이 작업을 수행 할 수있는 좋은 방법이 생각하지 않습니다.

2

SQL Azure에서는 모든 테이블에 클러스터 된 인덱스가 있어야하므로 인덱스를 만들지 않고 단순히 테이블 구조를 복제 할 수 없습니다.

관련 문제