Verwenden des Massenkopierprozesses (Bulk Copy Process, BCP) zum Exportieren von Microsoft Dynamics GP-Daten aus einer Datenbank und Importieren von Daten in eine neue Datenbank
In diesem Artikel wird erläutert, wie Sie den Massenkopierprozess (Bulk Copy Process, BCP) zum Exportieren und Importieren von Daten mithilfe von Microsoft Dynamics GP oder Microsoft Business Solutions – Great Plains verwenden.
Gilt für: Microsoft Dynamics GP
Ursprüngliche KB-Nummer: 875179
Einführung
Erstellen Sie eine Sicherung Ihrer Unternehmensdatenbank.
Kopieren Sie das folgende CreateBulkCopyOut.sql Skript, und fügen Sie es in Microsoft SQL Query Analyzer ein.
/* 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
Ersetzen Sie im Skript die folgenden Platzhalter durch die richtigen Informationen:
Ersetzen Sie TWO durch den Namen Ihrer Unternehmensdatenbank.
Ersetzen Sie password durch Ihr sa-Kennwort.
Ersetzen Sie SERVERNAME durch den Namen Ihrer instance von Microsoft SQL Server.
Hinweis
Klicken Sie zum Öffnen der Abfrageanalyse auf Start, zeigen Sie auf Programme, zeigen Sie auf Microsoft SQL Server, und wählen Sie dann Abfrageanalyse aus.
Hinweis
Wenn Sie Microsoft SQL Server 2000 Desktop Engine (auch als MSDE 2000 bezeichnet) verwenden, führen Sie die Anweisung in Microsoft-Support-Administratorkonsole aus. Um die Supportadministratorkonsole zu öffnen, wählen Sie Start aus, zeigen Sie auf Programme, zeigen Sie auf Microsoft-Support Administratorkonsole, und wählen Sie dann Supportadministratorkonsole aus. Die Supportadministratorkonsole erfordert eine separate Installation. Sie können das Programm mit der Great Plains-Installations-CD Nr. 2 installieren.
Führen Sie das Skript für die Datenbank aus, und speichern Sie die Ergebnisse dann in einer Batchdatei. Gehen Sie dazu wie folgt vor:
- Wenn Sie Query Analyzer verwenden, wählen Sie den Ergebnisbereich und dann im Menü Datei die Option Speichern unter aus. Erstellen Sie einen Ordner mit dem Namen BCPData, benennen Sie diese Datei Copyout.bat, und wählen Sie dann Speichern aus.
- Wenn Sie die Supportadministratorkonsole verwenden, wählen Sie Datei und dann Exportieren aus. Erstellen Sie einen Ordner, und nennen Sie ihn BCPData. Benennen Sie die Datei Copyout.bat. Klicken Sie dann auf Speichern.
Kopieren Sie das folgende CreateBulkCopyIn.sql-Skript, und fügen Sie es in Query Analyzer ein.
/* 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
Ersetzen Sie im Skript die folgenden Platzhalter durch die richtigen Informationen:
Ersetzen Sie TWO durch den Namen Ihrer Unternehmensdatenbank.
Ersetzen Sie password durch Ihr sa-Kennwort.
Ersetzen Sie SERVERNAME durch den Namen Ihrer instance SQL Server.
Hinweis
Klicken Sie zum Öffnen der Abfrageanalyse auf Start, zeigen Sie auf Programme, zeigen Sie auf Microsoft SQL Server, und wählen Sie dann Abfrageanalyse aus.
Hinweis
Wenn Sie SQL Server 2000 Desktop Engine verwenden, führen Sie die Anweisung in der Supportadministratorkonsole aus. Um die Supportadministratorkonsole zu öffnen, wählen Sie Start aus, zeigen Sie auf Programme, zeigen Sie auf Microsoft-Support Administratorkonsole, und wählen Sie dann Supportadministratorkonsole aus. Die Supportadministratorkonsole erfordert eine separate Installation. Sie können das Programm mit der Great Plains-Installations-CD Nr. 2 installieren.
Führen Sie das Skript für die Datenbank aus, und speichern Sie die Ergebnisse dann in einer Batchdatei.
- Wenn Sie Query Analyzer verwenden, wählen Sie den Ergebnisbereich und dann im Menü Datei die Option Speichern unter aus. Erstellen Sie einen Ordner, und nennen Sie ihn BCPData. Benennen Sie die Datei Copyin.bat, und wählen Sie dann Speichern aus.
- Wenn Sie die Supportadministratorkonsole verwenden, wählen Sie Datei und dann Exportieren aus. Erstellen Sie einen Ordner, und nennen Sie ihn BCPData. Benennen Sie die Datei Copyin.bat. Klicken Sie dann auf Speichern.
Führen Sie einen bcp-Befehl aus, um die Daten aus der Unternehmensdatenbank zu verschieben. Verwenden Sie dazu die entsprechende Methode.
Für Microsoft SQL Server 2000 oder MSDE 2000
Öffnen Sie den Ordner BCPData.
Doppelklicken Sie auf die dateiCopyout.bat .
Hinweis
Die Batchdatei startet den BCP-Prozess, um die Daten aus der Datenbank in eine Textdatei zu kopieren.
Öffnen Sie den Ordner BCPData.
Klicken Sie mit der rechten Maustaste auf die Copyout.bat Datei, und wählen Sie dann Bearbeiten aus, um die Datei im Editor oder in einem anderen Text-Editor zu öffnen.
Markieren Sie den gesamten Text. Wählen Sie dazu Bearbeiten und dann Alles auswählen aus. Oder drücken Sie ALT+A.
Kopieren Sie den gesamten Text aus der Copyout.bat-Datei in die Zwischenablage. Wählen Sie dazu Bearbeiten und dann Kopieren aus. Oder drücken Sie STRG+C.
Öffnen Sie ein Eingabeaufforderungsfenster. Wählen Sie dazu Start aus, wählen Sie Ausführen aus, geben Sie cmd ein, und klicken Sie dann auf OK.
Fügen Sie den Inhalt der Copyout.bat-Datei in das Eingabeaufforderungsfenster ein. Klicken Sie dazu mit der rechten Maustaste auf das Fenster, und wählen Sie einfügen aus.
Für Microsoft SQL Server 2005
Öffnen Sie den Ordner BCPData.
Doppelklicken Sie auf die dateiCopyout.bat .
Hinweis
Die Batchdatei startet den BCP-Prozess, um die Daten aus der Datenbank in eine Textdatei zu kopieren.
Löschen Sie das Unternehmen aus Microsoft Dynamics GP. Melden Sie sich dazu bei Great Plains als sa-Benutzer an. Wählen Sie Extras aus, zeigen Sie auf Setup, zeigen Sie auf System , und wählen Sie dann Unternehmen aus. Wählen Sie das Nachschlageglas aus, um alle aufgeführten Unternehmen anzuzeigen. Wählen Sie das Unternehmen und dann Löschen aus.
Hinweis
Löschen Sie für Versionen von Microsoft Great Plains, die älter als Microsoft Great Plains 8.0 sind, das Unternehmen. Gehen Sie wie folgt vor, um das Unternehmen zu löschen: Wählen Sie im Menü Setup die Option System und dann Unternehmen aus, um das Unternehmen zu löschen.
Entfernen Sie die Datenbank.
Wenn Sie Microsoft SQL Server verwenden, öffnen Sie Enterprise Manager, erweitern Sie den Servernamen, erweitern Sie Datenbank, klicken Sie mit der rechten Maustaste auf die Unternehmensdatenbank, die Sie in Schritt 7 gelöscht haben, und wählen Sie dann Löschen aus.
Wenn Sie SQL Server 2000 Desktop Engine verwenden, entfernen Sie die Datenbank aus der Supportadministratorkonsole, indem Sie das folgende Skript ausführen, wobei TWO der Name der Datenbank ist.
DROP DATABASE TWO
Erstellen Sie die Unternehmensdatenbank und die Prozeduren neu. Starten Sie dazu Microsoft Dynamics GP Utilities, melden Sie sich als sa-Benutzer an, und wählen Sie dann im Dialogfeld Zusätzliche Aufgaben die Option Neues Unternehmen erstellen aus.
Hinweis
Verwenden Sie denselben Firmennamen wie der, den Sie in Schritt 7 gelöscht haben.
Nachdem das Unternehmen erstellt wurde, müssen die Tabellen abgeschnitten werden.
Wenn Sie Microsoft SQL Server verwenden, führen Sie das folgende Truncate_Table_Company.sql Skript in Query Analyzer aus.
/* 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
Wenn Sie SQL Server 2000 Desktop Engine verwenden, führen Sie die folgenden Skripts separat in der Supportadministratorkonsole aus.
Skript 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
Skript 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
Skript 3
ALTER TABLE dbo.RM00105 ADD CONSTRAINT RM_NationalAccounts_MSTR_FKC FOREIGN KEY ( CPRCSTNM ) REFERENCES dbo.RM00101 ( CUSTNMBR )
Verschieben Sie die Daten zurück in die Unternehmensdatenbank. Öffnen Sie dazu den Ordner BCPData , und doppelklicken Sie dann auf die Copyin.bat Batchdatei. Durch Ausführen dieser Batchdatei wird das Verschieben der Daten zurück in die Unternehmensdatenbank gestartet. Wenn die Daten zurück in die Datenbank verschoben werden, werden alle Indizes für jede Tabelle erstellt und überprüft.
Hinweis
Wenn der Prozess abgeschlossen ist, enthält der BCPData-Ordner ERR-Dateien. Wenn eine dieser ERR-Dateien größer als 0 KB ist, wurden die Daten nicht erfolgreich für die Unternehmensdatenbank importiert.
Weitere Schritte
Wenn Sie den BCP-Prozess verwenden, um Ihre Microsoft SQL Server Sortierreihenfolge zu ändern, müssen Sie Daten in einem Massenvorgang aus der DYNAMICS-Datenbank und allen Unternehmensdatenbanken kopieren.
Hinweis
Das Ändern der Microsoft SQL Server Sortierreihenfolge für die DYNAMICS-Datenbank und die Unternehmensdatenbank wird von Microsoft nicht unterstützt. Informationen zu Beratungsdiensten, die möglicherweise zur Verfügung stehen, um die Microsoft SQL Server Sortierreihenfolge für Sie zu ändern, verwenden Sie eine der folgenden Optionen, je nachdem, ob Sie Kunde oder Partner sind:
Kunden:
Weitere Informationen zu Beratungsdiensten für die Datenmanipulation können Sie von Ihrem eingetragenen Partner erfahren. Wenn Sie keinen eingetragenen Partner haben, besuchen Sie Microsoft Pinpoint , um einen Partner zu identifizieren.
Partner:
Weitere Informationen zu Beratungsdiensten für die Datenmanipulation erfahren Sie unter 800-MPN-SOLVE bei Microsoft Advisory Services.
Führen Sie dazu die Schritte 1 bis 11 im Abschnitt Einführung aus. In Schritt 10 müssen Sie auch die DYNAMICS-Datenbank abschneiden. Verwenden Sie dazu eine der folgenden Methoden:
Wenn Sie Microsoft SQL Server verwenden, führen Sie das folgende Truncate_Tables_Dynamics.sql-Skript in Query Analyzer aus.
/* ** ** 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
Wenn Sie Microsoft SQL Server 2000 Desktop Engine verwenden, führen Sie die folgenden Skripts separat in der Supportadministratorkonsole aus.
Skript 1
if exists (select * from sysobjects where name = 'orgEntity_SETP') ALTER TABLE dbo.ORG40100 DROP CONSTRAINT orgEntity_SETP
Skript 2
if exists (select * from sysobjects where name = 'orgRelation_MSTR') ALTER TABLE dbo.ORG00100 DROP CONSTRAINT orgRelation_MSTR
Skript 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
Skript 4
ALTER TABLE dbo.ORG40100 ADD CONSTRAINT orgEntity_SETP FOREIGN KEY ( ENTYLVL ) REFERENCES dbo.ORG40000 ( ENTYLVL )
Skript 5
ALTER TABLE dbo.ORG00100 ADD CONSTRAINT orgRelation_MSTR FOREIGN KEY ( ENTITYID ) REFERENCES dbo.ORG40100 ( ENTITYID )