[SQL] 하나의 SQL 서버에서 다른 서버로 내보내기 테이블 데이터
SQL하나의 SQL 서버에서 다른 서버로 내보내기 테이블 데이터
저는 두 SQL 서버 (모두 2005 버전)을 가지고있다.
나는 하나에서 다른 여러 테이블을 마이그레이션 할.
나는 시도했다 :
그 때 나는 사용하여 시도 :
SELECT *
INTO [destination server].[destination database].[dbo].[destination table]
FROM [source server].[source database].[dbo].[source table]
그러나 나는 오류를 얻을 :
누군가가 내 문제에 적합한 솔루션으로 날 지점시겠습니까?
해결법
-
==============================
1.이 시도:
이 시도:
이것은 잘 작동합니다.
-
==============================
2.그냥 (위 SQL 서버 2008 등) 또 다른 옵션을 표시합니다 :
그냥 (위 SQL 서버 2008 등) 또 다른 옵션을 표시합니다 :
-
==============================
3.작업의 스크립트 테이블 옵션이 있습니다 / 스크립트를 생성합니다! 또한 처음에 보내고 말았습니다! 하지만 당신은 거기에 (아주 좋은 기능,하지만 매우 취소 직관적 장소) 스크립트 삽입 생성 할 수 있습니다.
작업의 스크립트 테이블 옵션이 있습니다 / 스크립트를 생성합니다! 또한 처음에 보내고 말았습니다! 하지만 당신은 거기에 (아주 좋은 기능,하지만 매우 취소 직관적 장소) 스크립트 삽입 생성 할 수 있습니다.
단계에 도착하면 "설정 스크립팅 옵션", "고급"탭으로 이동합니다.
여기에 설명 된 단계 (사진은 이해할 수 있지만, 나는 거기를 라트비아어에 쓰기 작업을 수행).
-
==============================
4.SQL Server 가져 오기 및 내보내기 마법사를 사용하십시오 (작업에서 -> 데이터 내보내기).
SQL Server 가져 오기 및 내보내기 마법사를 사용하십시오 (작업에서 -> 데이터 내보내기).
그것은 대상 데이터베이스의 테이블을 만들 수 있습니다. 당신이 보았 듯이, 반면, 스크립팅 마법사는 테이블 구조를 만들 수 있습니다.
-
==============================
5.테이블이 이미 스크립트를 사용하여 생성하는 경우, 데이터를 복사 할 수있는 또 다른 방법은 대상 서버에 원본 서버에서 모든 데이터를 복사 BCP 명령을 사용하여이된다
테이블이 이미 스크립트를 사용하여 생성하는 경우, 데이터를 복사 할 수있는 또 다른 방법은 대상 서버에 원본 서버에서 모든 데이터를 복사 BCP 명령을 사용하여이된다
원본 서버에서 텍스트 파일로 테이블 데이터를 내보내려면 :
bcp <database name>.<schema name>.<table name> OUT C:\FILE.TXT -c -t -T -S <server_name[ \instance_name]> -U <username> -P <Password>
대상 서버에서 텍스트 파일에서 테이블 데이터를 가져 오려면 :
bcp <database name>.<schema name>.<table name> IN C:\FILE.TXT -c -t -T -S <server_name[ \instance_name]> -U <username> -P <Password>
-
==============================
6.당신이 링크 서버에 권한이없는 경우, 여기에 하나의 서버에서 다른 서버로 사용하여 SQL Server 가져 오기 / 내보내기 마법사에 테이블을 가져올 수있는 단계는 다음과 같습니다
당신이 링크 서버에 권한이없는 경우, 여기에 하나의 서버에서 다른 서버로 사용하여 SQL Server 가져 오기 / 내보내기 마법사에 테이블을 가져올 수있는 단계는 다음과 같습니다
-
==============================
7.그냥 재미로합니다.
그냥 재미로합니다.
내가 연결된 서버를 만들 수 않네 때문에 그냥 프로덕션 서버에 연결하기 때문에 나는 다음과 같은 한 INSERT INTO를 사용하는 것만으로는 충분하지했다 :
내가 문제를 가지고 있기 때문에 그것의 백도어 솔루션은, 그러나 그것은 나를 위해 일했습니다.
내가 SCRIPT TABLE AS를 사용하여 빈 테이블을 만든 이후 / I는 SELECT INTO를 사용 couldnt는 모든 키와 인덱스를 전송하기 위해 CREATE. 테이블이 대상 위치에 존재하지 않지만 당신이 수동으로 실시 할 필요가 그래서, 키와 인덱스를 복사하지 않는 경우 SELECT INTO에만 작동합니다. INSERT INTO 문을 사용의 단점은 수동으로 실시하는 모든 열 이름을 제공해야한다는 것입니다, 플러스 일부 외래 키 제약 조건이 실패 할 경우, 그것은 당신에게 몇 가지 문제를 줄 수 있습니다.
모든 anwsers 덕분에 훌륭한 솔루션이 있습니다하지만 난 marc_s anwser을 수용하기로 결정했습니다.
-
==============================
8.당신은 소스 / 대상 서버를 선택할 수 없습니다.
당신은 소스 / 대상 서버를 선택할 수 없습니다.
데이터베이스가 같은 서버에있는 경우이 작업을 수행 할 수 있습니다 :
(! 위해 포함) 테이블의 컬럼이 동일한 경우에 당신은이 작업을 수행 할 수 있습니다
INSERT INTO [destination database].[dbo].[destination table] SELECT * FROM [source database].[dbo].[source table]
당신은 당신이 백업 / 소스 데이터베이스를 복원 할 수 있습니다 일단이 작업을 수행합니다. 당신이 더 자주이 작업을 수행해야하는 경우 나는 당신이 소스 데이터베이스를 정의한 SSIS 프로젝트를 시작하는 것이 좋습니다 (당신은이 모든 서버에 모든 연결을 선택할 수 있습니다) 당신이 당신의 데이터가 이동하는 프로젝트를 만듭니다. 자세한 내용은 여기를 참조하십시오 http://msdn.microsoft.com/en-us/library/ms169917%28v=sql.105%29.aspx
-
==============================
9.그것은 SQL Server 관리 Studio에서 "... 가져 오기 / 내보내기 데이터"를 통해 수행 할 수 있습니다
그것은 SQL Server 관리 Studio에서 "... 가져 오기 / 내보내기 데이터"를 통해 수행 할 수 있습니다
-
==============================
10.소스로부터 목적지로 데이터를 복사하는 경우 :
소스로부터 목적지로 데이터를 복사하는 경우 :
use <DestinationDatabase> select * into <DestinationTable> from <SourceDataBase>.dbo.<SourceTable>
-
==============================
11.이것은 다소 솔루션 주위에 이동이지만 내가 다른 사람이 문제에 대한뿐만 아니라 작동 희망 나를 위해 일한 :
이것은 다소 솔루션 주위에 이동이지만 내가 다른 사람이 문제에 대한뿐만 아니라 작동 희망 나를 위해 일한 :
당신은 당신이 수출에 원하는 테이블에 선택 SQL 쿼리를 실행하고 드라이브에 .XLS으로 결과를 저장할 수 있습니다.
이제 당신은 모든 열 및 인덱스 데이터를 추가 할 테이블을 만듭니다. 이것은 쉽게 실제 테이블의 오른쪽 클릭으로 수행 할 수 있습니다 및 스크립트 옵션에 만들기 선택.
지금 당신은 바로 당신에게 테이블을 추가하고> 가져 오기 작업을 선택하려는 DB 클릭 할 수 있습니다.
가져 오기 내보내기 마법사가 열립니다 및 입력 데이터 소스로 next.Select은 Microsoft Excel을 선택하고 검색하고 이전에 저장 한 .xls 파일을 선택합니다.
이제 또한 대상 서버 우리가 이전에 만든 대상 테이블을 선택합니다.
주 : 정체성을 기반으로 필드가있는 경우이 데이터도 삽입됩니다로서, 대상 테이블에 사용자가 ID 속성을 제거 할 수 있습니다. 당신은 단지 다음 ID 속성 등이 하나가 있다면 그래서 가져 오기 프로세스를 오류 것입니다.
이제 다음과 히트 마무리를 쳐서 오류가 발생하지 않으면 많은 레코드를 가져올 및 반환 성공되는 방법 당신을 보여줍니다.
-
==============================
12.C # .NET : 사용 가능한이있는 경우 또 다른 옵션을 선택합니다. 특히, Microsoft.SqlServer.Management.Smo 네임 스페이스.
C # .NET : 사용 가능한이있는 경우 또 다른 옵션을 선택합니다. 특히, Microsoft.SqlServer.Management.Smo 네임 스페이스.
내 SSIS 패키지 중 하나의 스크립트 구성 요소에서 다음과 유사한 코드를 사용합니다.
var tableToTransfer = "someTable"; var transferringTableSchema = "dbo"; var srvSource = new Server("sourceServer"); var dbSource = srvSource.Databases["sourceDB"]; var srvDestination = new Server("destinationServer"); var dbDestination = srvDestination.Databases["destinationDB"]; var xfr = new Transfer(dbSource) { DestinationServer = srvDestination.Name, DestinationDatabase = dbDestination.Name, CopyAllObjects = false, DestinationLoginSecure = true, DropDestinationObjectsFirst = true, CopyData = true }; xfr.Options.ContinueScriptingOnError = false; xfr.Options.WithDependencies = false; xfr.ObjectList.Add(dbSource.Tables[tableToTransfer,transferringTableSchema]); xfr.TransferData();
내가 명시 적으로 검색하고 참고 문헌에 Microsoft.SqlServer.Smo 라이브러리를 추가했다 생각합니다. 그러나 그 이외의,이 날 위해 일하고있다.
업데이트 : 내가 기억보다는 네임 스페이스와 라이브러리가 더 복잡했다.
라이브러리의 경우, 참조를 추가합니다
네임 스페이스를 들어, 추가 :
from https://stackoverflow.com/questions/11009189/export-table-data-from-one-sql-server-to-another by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 대기열로 데이터베이스 테이블을 사용하여 (0) | 2020.06.01 |
---|---|
[SQL] PostgreSQL을 누적 총 개수 (0) | 2020.06.01 |
[SQL] 는 SQL 서버에서 하위 쿼리를 사용하여 업데이트 쿼리 (0) | 2020.05.31 |
[SQL] SQL Server 2008의 데이터베이스로부터 데이터를 백업 하나의 테이블 (0) | 2020.05.31 |
[SQL] 특정 값으로 VARCHAR () 열 제한? (0) | 2020.05.31 |