2010-06-06 3 views
5

테이블 "A"가있는 데이터베이스 "temp"가 있습니다. 새로운 데이터베이스 "temp2"를 만들었습니다. 테이블 "A"를 "temp"에서 "temp2"의 새 테이블로 복사하려고합니다. 오류 여기SQL Server 2005의 다른 데이터베이스에있는 다른 테이블의 테이블을 만듭니다.

CREATE TABLE B IN 'temp2' 
    AS (SELECT * FROM A IN 'temp'); 

된다 : 키워드 근처

메시지 156, 수준 15, 상태 1, 줄 2 의 구문이 잘못 내가이 문을 시도했지만 내가 잘못된 구문이 말한다, 여기에 성명 '에서'. 메시지 156, 수준 15, 상태 1, 줄 3 'IN'키워드 근처의 구문이 잘못되었습니다.

누구든지 문제를 알고 있습니까? 사전에

감사합니다,

그렉

+0

테이블 "A"가 다른 서버에 있으면 어떻게됩니까 ?? – Chella

답변

17

나는 그 전에 구문을 본 적이 없다. 이것은 내가 일반적으로 사용하는 것입니다.

SELECT * 
INTO temp2.dbo.B 
FROM temp.dbo.A 
+0

고마워, 그랬어 : D – Greg

1

쿼리해야합니다 :

SELECT * INTO temp2.dbo.b 
FROM temp.dbo.a 
+1

나는 마틴의 답변이 서로 진화되어 있음을 볼 수있다. – egrunin

+0

이것에 대해서 단 하나의 올바른 구문이 있다고 생각한다. –

4

당신은 올바른 테이블을 식별 할 수있을 SQL Server에 대한 테이블 이름의 충분한 자격을해야합니다.

이름 구조는 <server name>.<database name>.<schema>.<table>입니다. 두 테이블이 동일한 서버에 사는 당신은 생략하지만, 여전히 나머지해야 할 수 있습니다 않을 인덱스를 복사 INTO SELECT

SELECT * 
INTO temp2.dbo.B 
FROM temp.dbo.A 
+0

감사합니다. 그 트릭을 :) – Greg

0

참고. 대상 DB에서 실행 temp.dbo.a

0

의 경우에서 temp2.dbo.b에

삽입로 (열) 선택 열을 삽입 할, 당신은 너무을 원한다면, 당신은 소스에서 스크립트를 생성 할 수 있습니다 당신은 당신이 할 수있는 데이터를 싶지 않아 ...

SELECT TOP 0 * INTO temp2.dbo.b 
FROM temp.dbo.a 
1

당신은 돈, t는 데이터를 원하는 경우에만 다음 U는이 방법을 사용할 수있는 데이터가없는 테이블의 shcema를 원하는 경우

SELECT * INTO temp2.dbo.b 
FROM temp.dbo.a where 1=0 
0

가장 쉬운 방법은 데이터베이스 temp에서 A 테이블을 마우스 오른쪽 버튼으로 클릭 한 다음 Script Table as =>CREATE to => 을 클릭하는 것입니다. 이렇게하면 스크립트가 생성됩니다.

그런 다음 2 줄을 변경하십시오. 새 데이터베이스 용으로 실행하십시오.

USE [temp2] 

.... 

CREATE TABLE [dbo].[B] 

..... 
0

현재 데이터베이스의 다른 DB에 새 테이블을 만들려면 쿼리를 실행하십시오.

CREATE TABLE `destination_database_name`.table_dummy AS (
SELECT * FROM currentDB.table 
)