BCP(대량 복사 프로세스)를 사용하여 한 데이터베이스에서 Microsoft Dynamics GP 데이터를 내보내고 데이터를 새 데이터베이스로 가져오는 방법

이 문서에서는 BCP(대량 복사 프로세스)를 사용하여 데이터를 내보내고 Microsoft Dynamics GP 또는 Microsoft Business Solutions - Great Plains를 사용하여 데이터를 가져오는 방법을 설명합니다.

적용 대상: Microsoft Dynamics GP
원래 KB 번호: 875179

소개

  1. 회사 데이터베이스의 백업을 만듭니다.

  2. 다음 CreateBulkCopyOut.sql 스크립트를 복사하여 Microsoft SQL 쿼리 분석기에 붙여넣습니다.

    /* Script to create bcp commands to export data for all tables. */ SET QUOTED_IDENTIFIER OFF select 'bcp "TWO..' + name + '" out ' + name + '.out -e ' + name + '.err -c -b 1000 -U sa -P password -t "|" -S SERVERNAME -r "#EOR#\n"' from sysobjects where type = 'U' order by name
    

    스크립트에서 다음 자리 표시자를 올바른 정보로 바꿉 있습니다.

    • TWO를 회사 데이터베이스의 이름으로 바꿉 있습니다.

    • 암호를 sa 암호로 대체합니다.

    • SERVERNAME을 Microsoft SQL Server instance 이름으로 바꿉 있습니다.

      참고

      쿼리 분석기를 열려면 시작을 선택하고 프로그램을 가리킨 다음 Microsoft SQL Server 가리킨 다음 쿼리 분석기를 선택합니다.

      참고

      Microsoft SQL Server 2000 데스크톱 엔진(MSDE 2000이라고도 함)을 사용하는 경우 Microsoft 지원 관리자 콘솔에서 문을 실행합니다. 지원 관리자 콘솔을 열려면 시작을 선택하고 프로그램을 가리킨 다음 Microsoft 지원 관리자 콘솔을 가리킨 다음 지원 관리자 콘솔을 선택합니다. 지원 관리자 콘솔에는 별도의 설치가 필요합니다. 그레이트 플레인 설치 CD 번호 2를 사용하여 프로그램을 설치할 수 있습니다.

  3. 데이터베이스에 대해 스크립트를 실행한 다음, 결과를 일괄 처리 파일에 저장합니다. 이렇게 하려면 다음 단계를 따르세요.

    • 쿼리 분석기를 사용하는 경우 결과 창을 선택한 다음 파일 메뉴에서다른 이름으로 저장을 선택합니다. BCPData라는 폴더를 만들고, 이 파일의 이름을 Copyout.bat다음, 저장을 선택합니다.
    • 지원 관리자 콘솔을 사용하는 경우 파일을 선택한 다음 내보내 기를 선택합니다. 폴더를 만들고 이름을 BCPData로 지정합니다. 파일 이름을 로Copyout.bat. 그런 다음 저장을 선택합니다.
  4. 다음 CreateBulkCopyIn.sql 스크립트를 복사하여 쿼리 분석기에 붙여넣습니다.

    /* Script to create bcp commands to import data for all tables. */ SET QUOTED_IDENTIFIER OFF select 'bcp "TWO..' + name + '" in ' + name + '.out -e ' + name + '.err -c -b 1000 -U sa -P password -t "|" -S SERVERNAME -r "#EOR#\n"' from sysobjects where type = 'U' order by name
    

    스크립트에서 다음 자리 표시자를 올바른 정보로 바꿉 있습니다.

    • TWO를 회사 데이터베이스의 이름으로 바꿉 있습니다.

    • 암호를 sa 암호로 대체합니다.

    • SERVERNAME을 SQL Server instance 이름으로 바꿉 있습니다.

      참고

      쿼리 분석기를 열려면 시작을 선택하고 프로그램을 가리킨 다음 Microsoft SQL Server 가리킨 다음 쿼리 분석기를 선택합니다.

      참고

      SQL Server 2000 데스크톱 엔진을 사용하는 경우 지원 관리자 콘솔에서 문을 실행합니다. 지원 관리자 콘솔을 열려면 시작을 선택하고 프로그램을 가리킨 다음 Microsoft 지원 관리자 콘솔을 가리킨 다음 지원 관리자 콘솔을 선택합니다. 지원 관리자 콘솔에는 별도의 설치가 필요합니다. 그레이트 플레인 설치 CD 번호 2를 사용하여 프로그램을 설치할 수 있습니다.

  5. 데이터베이스에 대해 스크립트를 실행한 다음, 결과를 일괄 처리 파일에 저장합니다.

    • 쿼리 분석기를 사용하는 경우 결과 창을 선택한 다음 파일 메뉴에서다른 이름으로 저장을 선택합니다. 폴더를 만들고 이름을 BCPData로 지정합니다. 파일 이름을 Copyin.bat 저장을 선택합니다.
    • 지원 관리자 콘솔을 사용하는 경우 파일을 선택한 다음 내보내기를 선택합니다. 폴더를 만들고 이름을 BCPData로 지정합니다. 파일 이름을 로Copyin.bat. 그런 다음 저장을 선택합니다.
  6. bcp 명령을 수행하여 데이터를 회사 데이터베이스 밖으로 이동합니다. 이렇게 하려면 적절한 메서드를 사용합니다.

    • Microsoft SQL Server 2000 또는 MSDE 2000의 경우

      1. BCPData 폴더를 엽니다.

      2. Copyout.bat 파일을 두 번 클릭합니다.

        참고

        일괄 처리 파일은 BCP 프로세스를 시작하여 데이터베이스에서 텍스트 파일로 데이터를 복사합니다.

      3. BCPData 폴더를 엽니다.

      4. Copyout.bat파일을 마우스 오른쪽 단추 로 클릭한 다음 편집을 선택하여 메모장 또는 다른 텍스트 편집기에서 파일을 엽니다.

      5. 모든 텍스트를 선택합니다. 이렇게 하려면 편집을 선택한 다음, 모두 선택을 선택합니다. 또는 Alt+A를 누릅니다.

      6. Copyout.bat 파일의 모든 텍스트를 클립보드로 복사합니다. 이렇게 하려면 편집을 선택한 다음 복사를 선택합니다. 또는 Ctrl+C를 누릅니다.

      7. 명령 프롬프트 창을 엽니다. 이렇게 하려면 시작을선택하고 실행을 선택하고 cmd를 입력한 다음 확인을 선택합니다.

      8. Copyout.bat 파일의 내용을 명령 프롬프트 창에 붙여넣습니다. 이렇게 하려면 창을 마우스 오른쪽 단추로 클릭한 다음 붙여넣기를 선택합니다.

    • Microsoft SQL Server 2005용

      1. BCPData 폴더를 엽니다.

      2. Copyout.bat 파일을 두 번 클릭합니다.

        참고

        일괄 처리 파일은 BCP 프로세스를 시작하여 데이터베이스에서 텍스트 파일로 데이터를 복사합니다.

  7. Microsoft Dynamics GP 내에서 회사를 삭제합니다. 이렇게 하려면 Sa 사용자로 그레이트 플레인스에 로그인합니다. 도구를 선택하고 설치 프로그램을 가리킨 다음 시스템을 가리킨 다음 회사를 선택합니다. 조회 유리를 선택하여 나열된 모든 회사를 표시합니다. 회사를 선택한 다음 삭제를 선택합니다.

    참고

    Microsoft Great Plains 8.0 이전 버전의 경우 회사를 삭제합니다. 회사를 삭제하려면 다음을 수행합니다. 설치 메뉴에서 시스템을 선택한 다음 회사를 선택하여 회사를 삭제합니다.

  8. 데이터베이스를 제거합니다.

    • Microsoft SQL Server 사용하는 경우 Enterprise Manager를 열고 서버 이름을 확장하고 데이터베이스를 확장한 다음 7단계에서 삭제한 회사 데이터베이스를 마우스 오른쪽 단추로 클릭한 다음 삭제를 선택합니다.

    • SQL Server 2000 데스크톱 엔진을 사용하는 경우 다음 스크립트를 실행하여 지원 관리자 콘솔 내에서 데이터베이스를 제거합니다. 여기서 TWO는 데이터베이스의 이름입니다.

      DROP DATABASE TWO
      
  9. 회사 데이터베이스 및 프로시저를 다시 만듭니다. 이렇게 하려면 Microsoft Dynamics GP 유틸리티를 시작하고 sa 사용자로 로그인한 다음 추가 작업 대화 상자에서 새 회사 만들기를 선택합니다.

    참고

    7단계에서 삭제한 것과 동일한 회사 이름을 사용합니다.

  10. 회사를 만든 후에는 테이블을 잘라야 합니다.

    • Microsoft SQL Server 사용하는 경우 Query Analyzer에서 다음 Truncate_Table_Company.sql 스크립트를 실행합니다.

      /* Script to remove all data from all user tables in the company database */ SET QUOTED_IDENTIFIER OFF if exists (select * from sysobjects where name = 'RM_NationalAccounts_MSTR_FKC') ALTER TABLE dbo.RM00105 DROP CONSTRAINT RM_NationalAccounts_MSTR_FKC Go declare @tablename char(255) DECLARE t_cursor CURSOR for select "truncate table " + name from sysobjects where type = 'U' set NOCOUNT on open t_cursor FETCH NEXT FROM t_cursor INTO @tablename while (@@fetch_status <> -1) begin if (@@fetch_status <> -2) begin exec (@tablename) end FETCH NEXT FROM t_cursor into @tablename end DEALLOCATE t_cursor GO ALTER TABLE dbo.RM00105 ADD CONSTRAINT RM_NationalAccounts_MSTR_FKC FOREIGN KEY ( CPRCSTNM ) REFERENCES dbo.RM00101 ( CUSTNMBR ) GO
      
    • SQL Server 2000 데스크톱 엔진을 사용하는 경우 지원 관리자 콘솔에서 다음 스크립트를 별도로 실행합니다.

      스크립트 1

      SET QUOTED_IDENTIFIER OFF if exists (select * from sysobjects where name = 'RM_NationalAccounts_MSTR_FKC') ALTER TABLE dbo.RM00105 DROP CONSTRAINT RM_NationalAccounts_MSTR_FKC
      

      Script 2

      SET QUOTED_IDENTIFIER OFF declare @tablename char(255) DECLARE t_cursor CURSOR for select "truncate table " + name from sysobjects where type = 'U' set NOCOUNT on open t_cursor FETCH NEXT FROM t_cursor INTO @tablename while (@@fetch_status <> -1) begin if (@@fetch_status <> -2) begin exec (@tablename) end FETCH NEXT FROM t_cursor into @tablename end DEALLOCATE t_cursor
      

      Script 3

      ALTER TABLE dbo.RM00105 ADD CONSTRAINT RM_NationalAccounts_MSTR_FKC FOREIGN KEY ( CPRCSTNM ) REFERENCES dbo.RM00101 ( CUSTNMBR )
      
  11. 데이터를 회사 데이터베이스로 다시 이동합니다. 이렇게 하려면 BCPData 폴더를 연 다음 Copyin.bat 일괄 처리 파일을 두 번 클릭합니다. 이 일괄 처리 파일을 실행하면 데이터를 회사 데이터베이스로 다시 이동하는 프로세스가 시작됩니다. 데이터가 데이터베이스로 다시 이동되면 각 테이블에 대해 모든 인덱스가 만들어지고 확인됩니다.

    참고

    프로세스가 완료되면 BCPData 폴더에 .err 파일이 포함됩니다. 이러한 .err 파일 중 하나가 0KB보다 큰 경우 회사 데이터베이스에 대한 데이터를 성공적으로 가져오지 못했습니다.

추가 단계

BCP 프로세스를 사용하여 Microsoft SQL Server 정렬 순서를 변경하는 경우 DYNAMICS 데이터베이스 및 모든 회사 데이터베이스에서 데이터를 대량 복사해야 합니다.

참고

DYNAMICS 데이터베이스 및 회사 데이터베이스에 대한 Microsoft SQL Server 정렬 순서 변경은 Microsoft에서 지원하지 않습니다. Microsoft SQL Server 정렬 순서를 변경하는 데 사용할 수 있는 컨설팅 서비스에 대한 자세한 내용은 고객인지 파트너인지에 따라 다음 옵션 중 하나를 사용합니다.

고객:
데이터 조작 컨설팅 서비스에 대한 자세한 내용은 레코드 파트너에게 문의하세요. 레코드 파트너가 없는 경우 Microsoft Pinpoint 를 방문하여 파트너를 식별합니다.

파트너:
데이터 조작 컨설팅 서비스에 대한 자세한 내용은 800-MPN-SOLVE의 Microsoft Advisory Services에 문의하세요.

이렇게 하려면 소개 섹션의 1~11단계를 수행합니다. 10단계에서는 DYNAMICS 데이터베이스도 잘라내야 합니다. 이렇게 하려면 다음 방법 중 하나를 사용합니다.

  • Microsoft SQL Server 사용하는 경우 Query Analyzer에서 다음 Truncate_Tables_Dynamics.sql 스크립트를 실행합니다.

    /* ** **
    Truncate_Tables_Dynamics.sql 
    function: Will remove all data from all user tables in the DYNAMICS database
     ** */ 
    
    SET QUOTED_IDENTIFIER OFF 
    
    if exists (select * from sysobjects where name = 'orgEntity_SETP')
    ALTER TABLE dbo.ORG40100
    DROP CONSTRAINT orgEntity_SETP
    GO
    if exists (select * from sysobjects where name = 'orgRelation_MSTR')
    ALTER TABLE dbo.ORG00100
    DROP CONSTRAINT orgRelation_MSTR
    Go
    declare @tablename char(255) 
    
    DECLARE t_cursor CURSOR for
    select "truncate table " + name
    from sysobjects where type = 'U'
    
    set NOCOUNT on
    open t_cursor
    FETCH NEXT FROM t_cursor INTO @tablename
    while (@@fetch_status <> -1)
    begin
    if (@@fetch_status <> -2)
    begin
    exec (@tablename)
    end 
    
    FETCH NEXT FROM t_cursor into @tablename
    end
    
    DEALLOCATE t_cursor
    GO
    ALTER TABLE dbo.ORG40100 ADD 
    CONSTRAINT orgEntity_SETP FOREIGN KEY 
    (
    ENTYLVL
    ) REFERENCES dbo.ORG40000 (
    ENTYLVL
    )
    GO
    ALTER TABLE dbo.ORG00100 ADD 
    CONSTRAINT orgRelation_MSTR FOREIGN KEY 
    ( ENTITYID ) REFERENCES dbo.ORG40100 ( ENTITYID )
    
    GO 
    
  • Microsoft SQL Server 2000 데스크톱 엔진을 사용하는 경우 지원 관리자 콘솔에서 다음 스크립트를 별도로 실행합니다.

    • 스크립트 1

      if exists (select * from sysobjects where name = 'orgEntity_SETP') ALTER TABLE dbo.ORG40100 DROP CONSTRAINT orgEntity_SETP
      
    • Script 2

      if exists (select * from sysobjects where name = 'orgRelation_MSTR') ALTER TABLE dbo.ORG00100 DROP CONSTRAINT orgRelation_MSTR
      
    • Script 3

      declare @tablename char(255) 
      
      DECLARE t_cursor CURSOR for
      select "truncate table " + name
      from sysobjects where type = 'U'
      
      set NOCOUNT on
      open t_cursor
      FETCH NEXT FROM t_cursor INTO @tablename
      while (@@fetch_status <> -1)
      begin
      if (@@fetch_status <> -2)
      begin
      exec (@tablename)
      end 
      
      FETCH NEXT FROM t_cursor into @tablename
      end
      
      DEALLOCATE t_cursor
      
    • Script 4

      ALTER TABLE dbo.ORG40100 ADD 
      CONSTRAINT orgEntity_SETP FOREIGN KEY 
      (
      ENTYLVL
      ) REFERENCES dbo.ORG40000 (
      ENTYLVL
      )
      
    • Script 5

      ALTER TABLE dbo.ORG00100 ADD 
      CONSTRAINT orgRelation_MSTR FOREIGN KEY 
      ( ENTITYID ) REFERENCES dbo.ORG40100 ( ENTITYID )