一括コピー プロセス (BCP) を使用して、1 つのデータベースから Microsoft Dynamics GP データをエクスポートし、新しいデータベースにデータをインポートする方法

この記事では、一括コピー プロセス (BCP) を使用してデータをエクスポートし、Microsoft Dynamics GP または Microsoft Business Solutions - グレート プレーンズを使用してデータをインポートする方法について説明します。

適用対象: Microsoft Dynamics GP
元の KB 番号: 875179

概要

  1. 会社のデータベースのバックアップを作成します。

  2. 次のCreateBulkCopyOut.sql スクリプトをコピーして Microsoft SQL Query Analyzer に貼り付けます。

    /* 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 を会社データベースの名前に置き換えます。

    • password を sa パスワード に置き換えます。

    • SERVERNAME を Microsoft SQL Server のインスタンスの名前に置き換えます。

      注:

      クエリ アナライザーを開くには、[スタート] を選択し、[プログラム] をポイントし、[Microsoft SQL Server] をポイントして、[クエリ アナライザー] を選択します。

      注:

      Microsoft SQL Server 2000 デスクトップ エンジン (MSDE 2000 とも呼ばれます) を使用している場合は、管理者コンソールでステートメントMicrosoft サポート実行します。 [サポート管理者コンソール] を開くには、[スタート] を選択し、[プログラム] をポイントし、[Microsoft サポート管理者コンソール] をポイントして、[サポート管理者コンソール] を選択します。 サポート管理者コンソールには、別のインストールが必要です。 プログラムは、グレートプレーンズインストールCD番号2を使用してインストールできます。

  3. データベースに対してスクリプトを実行し、結果をバッチ ファイルに保存します。 これを行うには、次の手順に従います。

    • クエリ アナライザーを使用している場合は、結果ウィンドウを選択し、[ファイル] メニューの [名前を付けて保存] を選択します。 BCPData という名前のフォルダーを作成し、このファイルにCopyout.bat名前を付けて、[保存] を選択します
    • サポート管理者コンソールを使用している場合は、[ ファイル] を選択し、[ エクスポート] を選択します。 フォルダーを作成し、BCPData という名前を 付けます。 ファイルにCopyout.batという名前を けます。 その後、[保存] を選択します。
  4. 次のCreateBulkCopyIn.sql スクリプトをコピーして Query Analyzer に貼り付けます。

    /* 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 を会社データベースの名前に置き換えます。

    • password を sa パスワード に置き換えます。

    • SERVERNAME を、SQL Serverのインスタンスの名前に置き換えます。

      注:

      クエリ アナライザーを開くには、[スタート] を選択し、[プログラム] をポイントし、[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」と入力して、[ OK] を選択します

      8. Copyout.bat ファイルの内容をコマンド プロンプト ウィンドウに貼り付けます。 これを行うには、ウィンドウを右クリックし、[ 貼り付け] を選択します。

    • Microsoft SQL Server 2005 の場合

      1. BCPData フォルダーを開きます。

      2. Copyout.bat ファイルをダブルクリックします。

        注:

        バッチ ファイルは BCP プロセスを開始し、データベースからテキスト ファイルにデータをコピーします。

  7. Microsoft Dynamics GP 内から会社を削除します。 これを行うには、sa ユーザーとしてグレート プレーンズにサインインします。 [ ツール] を選択し、[ セットアップ] をポイントし、[ システム ] をポイントし、[ 会社] を選択します。 ルックアップ ガラスを選択すると、一覧表示されているすべての会社が表示されます。 会社を選択し、[削除] を選択 します

    注:

    Microsoft グレート プレーンズ 8.0 より前のバージョンの Microsoft グレート プレーンズの場合は、会社を削除します。 会社を削除するには、次の操作を行います。[セットアップ] メニューの [ システム] を選択し、[ 会社 ] を選択して会社を削除します。

  8. データベースを削除します。

    • Microsoft SQL Serverを使用している場合は、Enterprise Manager を開き、サーバー名を展開し、[データベース] を展開し、手順 7 で削除した会社のデータベースを右クリックして、[削除] を選択します

    • SQL Server 2000 デスクトップ エンジンを使用している場合は、次のスクリプト (TWO はデータベースの名前) を実行して、サポート管理者コンソール内からデータベースを削除します。

      DROP DATABASE TWO
      
  9. 会社のデータベースと手順を再作成します。 これを行うには、Microsoft Dynamics GP Utilities を起動し、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
      

      スクリプト 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
      

      スクリプト 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 ファイルのいずれかが 0 KB を超える場合、会社データベースのデータは正常にインポートされませんでした。

その他の手順

BCP プロセスを使用して Microsoft SQL Server並べ替え順序を変更する場合は、DYNAMICS データベースとすべての Company データベースからデータを一括コピーする必要があります。

注:

DYNAMICS データベースと Company データベースの Microsoft SQL Server並べ替え順序の変更は、Microsoft ではサポートされていません。 Microsoft SQL Server並べ替え順序を変更できるコンサルティング サービスについては、顧客かパートナーかに応じて、次のいずれかのオプションを使用します。

顧客:
データ操作コンサルティング サービスの詳細については、レコードのパートナーにお問い合わせください。 レコードのパートナーがない場合は、 Microsoft Pinpoint にアクセスしてパートナーを特定してください。

パートナー:
データ操作コンサルティング サービスの詳細については、Microsoft Advisory Services (800-MPN-SOLVE) にお問い合わせください。

これを行うには、「 概要 」セクションの手順 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
      
    • スクリプト 2

      if exists (select * from sysobjects where name = 'orgRelation_MSTR') ALTER TABLE dbo.ORG00100 DROP CONSTRAINT orgRelation_MSTR
      
    • スクリプト 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
      
    • スクリプト 4

      ALTER TABLE dbo.ORG40100 ADD 
      CONSTRAINT orgEntity_SETP FOREIGN KEY 
      (
      ENTYLVL
      ) REFERENCES dbo.ORG40000 (
      ENTYLVL
      )
      
    • スクリプト 5

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