2016-11-17 11 views
-1

BULK INSERT를 사용하여 두 테이블간에 데이터를 이동하는 방법은 무엇입니까? 예제가있는 자습서를 찾을 수 없습니다. 나는 이동할 10 만권의 기록이있다. SQL Server 2012 SP3. 그것은 한 번 행동입니다. cmdshell을 사용할 수 없으며 SSIS를 사용할 수 없습니다. 데이터를 일괄 적으로 이동해야합니다. 그것은 밤의 직업이 될 것입니다. 나는 "이동"이라고 말하지만 소스에서 레코드를 삭제할 필요는 없습니다. 대상 테이블이 이미 존재하므로 일부 제약 조건과 외부 키가 없는지 확인할 필요가 없습니다.BULK INSERT를 사용하여 두 테이블간에 데이터를 이동하는 방법은 무엇입니까?

+1

질문에 대한 자세한 내용을 입력하십시오. –

+0

원본 테이블과 대상 테이블을 가지고있을 때 대량 삽입 사용 방법에 대한 예제가 없습니다. bcp를 사용할 수 없습니다. 나는 약 10 mln 행 이동해야합니다. –

+1

어떤 버전의 SQL-Server? 한 번 작업 또는 자동 여러 작업? 동일한 서버 또는 differen 서버? 동일한 네트워크 또는 다른가? 자세한 내용을 입력하십시오! – Shnugo

답변

2

데이터를 한 서버에서 다른 서버로 이동하는 것은 매우 쉽습니다 (두 서버가 같은 서버에있는 한). 스크립트를 사용하려는 이 한 테이블에서 다른 테이블 기록을 복사하려면 당신이 원하는대로

이를 사용할 수 있습니다 :

INSERT INTO TargetDB.dbo.TableName(col1,col2,col3...) 
SELECT col1,col2, col3 ... FROM SourceDB.dbo.TableName 

이가 여기에서 모든 행을 복사합니다.

질문에 충분한 정보를 제공하지 않지만 스크립트을 사용하려고합니다. 위는 데이터를 기존의 경우

  • 는 대상 및 Soure는 동일한 구조를 가지고 있지 않은 경우에 대한 MERGE
  • , 당신은 쉽게 정확히 집합을 반환하는 SELECT을 적용 할 수 읽어야 ... 스크립트 당신 삽입해야합니다.
  • 모든 행을 복사 할 필요가없는 경우 WHERE 절을 추가하십시오.
  • 연결하는 데 필요한 사용자에게 필요한 권한이 없다면 관리자에게 문의하십시오. 그러나 - 당신이 질문이나 코멘트에서 - 데이터베이스가 두 개의 서로 다른 서버에서 사는 경우에
  • ...이 어쨌든 관리자에 의해 적용됩니다, 가지고, 당신은 약 linked server
  • 를 읽을 수 있습니다 그리고 마지막으로 당신에 대한 import and export를 읽을 수 있습니다 ...
+0

Shnugo, 15 백만 ml 행을 마이그레이션해야합니다.일괄 처리하고 스크립트를 사용해야합니다. –

+1

무료 * 사용자 야간 작업 * 한 번에 작동 * 15 mln은 상당히 많지만 범위를 벗어남 * ...이 작업을 분리해야하는 경우 쉽게 할 수 있습니다. 적절한 종류의 필터를 사용하여 적절한 청크를 만들고 루프 내에서 이동하십시오. 이에 대한 도움이 필요하면 새로운 질문을 시작하십시오. 실제 문제 **에 대해 물어보고 ** 가장 좋을 것이라고 생각했던 접근 방식에 대해서만 시도하십시오. 'BULK INSERT'는 (아마도) 전혀 필요하지 않습니다 ... [XY 문제] (http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)를 피하십시오. **이 대답은 ** 해결 ** **이 질문을 수락하십시오. – Shnugo

+0

당신의 대답은 내 문제를 해결하지 못했을 수도 있습니다. –