一括コピー プロセス (BCP) を使用して、1 つのデータベースから Microsoft Dynamics GP データをエクスポートし、新しいデータベースにデータをインポートする方法
この記事では、一括コピー プロセス (BCP) を使用してデータをエクスポートし、Microsoft Dynamics GP または Microsoft Business Solutions - グレート プレーンズを使用してデータをインポートする方法について説明します。
適用対象: Microsoft Dynamics GP
元の KB 番号: 875179
概要
会社のデータベースのバックアップを作成します。
次の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を使用してインストールできます。
データベースに対してスクリプトを実行し、結果をバッチ ファイルに保存します。 これを行うには、次の手順に従います。
- クエリ アナライザーを使用している場合は、結果ウィンドウを選択し、[ファイル] メニューの [名前を付けて保存] を選択します。 BCPData という名前のフォルダーを作成し、このファイルにCopyout.bat名前を付けて、[保存] を選択します。
- サポート管理者コンソールを使用している場合は、[ ファイル] を選択し、[ エクスポート] を選択します。 フォルダーを作成し、BCPData という名前を 付けます。 ファイルにCopyout.batという名前を 付 けます。 その後、[保存] を選択します。
次の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を使用してインストールできます。
データベースに対してスクリプトを実行し、結果をバッチ ファイルに保存します。
- クエリ アナライザーを使用している場合は、結果ウィンドウを選択し、[ファイル] メニューの [名前を付けて保存] を選択します。 フォルダーを作成し、BCPData という名前を 付けます。 ファイルに Copyin.bat 名前を付け、[保存] を選択 します。
- サポート管理者コンソールを使用している場合は、[ ファイル ] を選択し、[エクスポート] を選択 します。 フォルダーを作成し、BCPData という名前を 付けます。 ファイルにCopyin.batという名前を 付 けます。 その後、[保存] を選択します。
bcp コマンドを実行して、会社のデータベースからデータを移動します。 これを行うには、適切なメソッドを使用します。
Microsoft SQL Server 2000 または MSDE 2000 の場合
BCPData フォルダーを開きます。
Copyout.bat ファイルをダブルクリックします。
注:
バッチ ファイルは BCP プロセスを開始し、データベースからテキスト ファイルにデータをコピーします。
BCPData フォルダーを開きます。
Copyout.bat ファイルを右クリックし、[編集] を選択してメモ帳または別のテキスト エディターでファイルを開きます
すべてのテキストを選択します。 これを行うには、[ 編集] を選択し、[ すべて選択] を選択します。 または、Alt キーを押しながら A キーを押します。
Copyout.bat ファイルのすべてのテキストをクリップボードにコピーします。 これを行うには、[ 編集] を選択し、[ コピー] を選択します。 または、Ctrl + C キーを押します。
コマンド プロンプト ウィンドウを開きます。 これを行うには、[ スタート] を選択し、[ 実行] を選択し、「 cmd」と入力して、[ OK] を選択します。
Copyout.bat ファイルの内容をコマンド プロンプト ウィンドウに貼り付けます。 これを行うには、ウィンドウを右クリックし、[ 貼り付け] を選択します。
Microsoft SQL Server 2005 の場合
BCPData フォルダーを開きます。
Copyout.bat ファイルをダブルクリックします。
注:
バッチ ファイルは BCP プロセスを開始し、データベースからテキスト ファイルにデータをコピーします。
Microsoft Dynamics GP 内から会社を削除します。 これを行うには、sa ユーザーとしてグレート プレーンズにサインインします。 [ ツール] を選択し、[ セットアップ] をポイントし、[ システム ] をポイントし、[ 会社] を選択します。 ルックアップ ガラスを選択すると、一覧表示されているすべての会社が表示されます。 会社を選択し、[削除] を選択 します。
注:
Microsoft グレート プレーンズ 8.0 より前のバージョンの Microsoft グレート プレーンズの場合は、会社を削除します。 会社を削除するには、次の操作を行います。[セットアップ] メニューの [ システム] を選択し、[ 会社 ] を選択して会社を削除します。
データベースを削除します。
Microsoft SQL Serverを使用している場合は、Enterprise Manager を開き、サーバー名を展開し、[データベース] を展開し、手順 7 で削除した会社のデータベースを右クリックして、[削除] を選択します。
SQL Server 2000 デスクトップ エンジンを使用している場合は、次のスクリプト (TWO はデータベースの名前) を実行して、サポート管理者コンソール内からデータベースを削除します。
DROP DATABASE TWO
会社のデータベースと手順を再作成します。 これを行うには、Microsoft Dynamics GP Utilities を起動し、sa ユーザーとしてサインインし、[追加タスク] ダイアログ ボックスで [新しい会社の作成] を選択します。
注:
手順 7 で削除した会社名と同じ会社名を使用します。
会社が作成されたら、テーブルを切り捨てる必要があります。
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 )
データを会社のデータベースに戻します。 これを行うには、 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 )
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示