BULK INSERT를 사용하여 두 테이블간에 데이터를 이동하는 방법은 무엇입니까? 예제가있는 자습서를 찾을 수 없습니다. 나는 이동할 10 만권의 기록이있다. SQL Server 2012 SP3. 그것은 한 번 행동입니다. cmdshell을 사용할 수 없으며 SSIS를 사용할 수 없습니다. 데이터를 일괄 적으로 이동해야합니다. 그것은 밤의 직업이 될 것입니다. 나는 "이동"이라고 말하지만 소스에서 레코드를 삭제할 필요는 없습니다. 대상 테이블이 이미 존재하므로 일부 제약 조건과 외부 키가 없는지 확인할 필요가 없습니다.BULK INSERT를 사용하여 두 테이블간에 데이터를 이동하는 방법은 무엇입니까?
답변
데이터를 한 서버에서 다른 서버로 이동하는 것은 매우 쉽습니다 (두 서버가 같은 서버에있는 한). 스크립트를 사용하려는 이 한 테이블에서 다른 테이블 기록을 복사하려면 당신이 원하는대로
이를 사용할 수 있습니다 :
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
를 읽을 수 있습니다 ...
Shnugo, 15 백만 ml 행을 마이그레이션해야합니다.일괄 처리하고 스크립트를 사용해야합니다. –
무료 * 사용자 야간 작업 * 한 번에 작동 * 15 mln은 상당히 많지만 범위를 벗어남 * ...이 작업을 분리해야하는 경우 쉽게 할 수 있습니다. 적절한 종류의 필터를 사용하여 적절한 청크를 만들고 루프 내에서 이동하십시오. 이에 대한 도움이 필요하면 새로운 질문을 시작하십시오. 실제 문제 **에 대해 물어보고 ** 가장 좋을 것이라고 생각했던 접근 방식에 대해서만 시도하십시오. 'BULK INSERT'는 (아마도) 전혀 필요하지 않습니다 ... [XY 문제] (http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)를 피하십시오. **이 대답은 ** 해결 ** **이 질문을 수락하십시오. – Shnugo
당신의 대답은 내 문제를 해결하지 못했을 수도 있습니다. –
질문에 대한 자세한 내용을 입력하십시오. –
원본 테이블과 대상 테이블을 가지고있을 때 대량 삽입 사용 방법에 대한 예제가 없습니다. bcp를 사용할 수 없습니다. 나는 약 10 mln 행 이동해야합니다. –
어떤 버전의 SQL-Server? 한 번 작업 또는 자동 여러 작업? 동일한 서버 또는 differen 서버? 동일한 네트워크 또는 다른가? 자세한 내용을 입력하십시오! – Shnugo