Microsoft Dynamics GP verilerini bir veritabanından dışarı aktarmak ve verileri yeni bir veritabanına aktarmak için Toplu Kopyalama İşlemi'ni (BCP) kullanma

Bu makalede, Verileri dışarı aktarmak ve Microsoft Dynamics GP veya Microsoft Business Solutions - Great Plains kullanarak verileri içeri aktarmak için Toplu Kopyalama İşlemi'nin (BCP) nasıl kullanılacağı açıklanır.

Şunlar için geçerlidir: Microsoft Dynamics GP
Özgün KB numarası: 875179

Giriş

  1. Şirket veritabanınızı yedekleyin.

  2. Aşağıdaki CreateBulkCopyOut.sql betiğini kopyalayıp Microsoft SQL Query Analyzer'a yapıştırın.

    /* 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
    

    Betikte aşağıdaki yer tutucuları doğru bilgilerle değiştirin:

    • TWO değerini şirket veritabanınızın adıyla değiştirin.

    • Parolayı sa parolanızla değiştirin.

    • SERVERNAME yerine Microsoft SQL Server örneğinizin adını yazın.

      Not

      Sorgu Çözümleyicisi'ni açmak için Başlat'ı seçin, Programlar'ın üzerine gelin, Microsoft SQL Server'nin üzerine gelin ve sorgu çözümleyicisi'ni seçin.

      Not

      Microsoft SQL Server 2000 Masaüstü Altyapısı (MSDE 2000 olarak da bilinir) kullanıyorsanız, Microsoft Desteği Yönetici Konsolu'nda deyimini çalıştırın. Destek Yöneticisi Konsolu'nu açmak için Başlat'ı seçin, Programlar'ın üzerine gelin, yönetici konsolu Microsoft Desteği üzerine gelin ve ardından Destek Yöneticisi Konsolu'nu seçin. Destek Yöneticisi Konsolu ayrı bir yükleme gerektirir. 2 numaralı Great Plains yükleme CD'sini kullanarak programı yükleyebilirsiniz.

  3. Betiği veritabanında çalıştırın ve sonuçları bir toplu iş dosyasına kaydedin. Bunu yapmak için şu adımları uygulayın:

    • Sorgu Çözümleyicisi'ni kullanıyorsanız sonuçlar bölmesini ve ardından Dosya menüsünde Farklı Kaydet'i seçin. BCPData adlı bir klasör oluşturun, bu dosyayı Copyout.batadlandırın ve kaydet'i seçin.
    • Destek Yöneticisi Konsolu kullanıyorsanız Dosya'yı ve ardından Dışarı Aktar'ı seçin. Bir klasör oluşturun ve BCPData olarak adlandırır. Dosyayı Copyout.batolarak adlandırın. Ardından Kaydet'i seçin.
  4. Aşağıdaki CreateBulkCopyIn.sql betiğini kopyalayıp Sorgu Çözümleyicisi'ne yapıştırın.

    /* 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
    

    Betikte aşağıdaki yer tutucuları doğru bilgilerle değiştirin:

    • TWO değerini şirket veritabanınızın adıyla değiştirin.

    • Parolayı sa parolanızla değiştirin.

    • SERVERNAME değerini SQL Server örneğinizin adıyla değiştirin.

      Not

      Sorgu Çözümleyicisi'ni açmak için Başlat'ı seçin, Programlar'ın üzerine gelin, Microsoft SQL Server'nin üzerine gelin ve sorgu çözümleyicisi'ni seçin.

      Not

      SQL Server 2000 Masaüstü Altyapısı kullanıyorsanız, Destek Yöneticisi Konsolu'nda deyimini çalıştırın. Destek Yöneticisi Konsolu'nu açmak için Başlat'ı seçin, Programlar'ın üzerine gelin, yönetici konsolu Microsoft Desteği üzerine gelin ve ardından Destek Yöneticisi Konsolu'nu seçin. Destek Yöneticisi Konsolu ayrı bir yükleme gerektirir. 2 numaralı Great Plains yükleme CD'sini kullanarak programı yükleyebilirsiniz.

  5. Betiği veritabanında çalıştırın ve sonuçları bir toplu iş dosyasına kaydedin.

    • Sorgu Çözümleyicisi'ni kullanıyorsanız sonuçlar bölmesini ve ardından Dosya menüsünde Farklı Kaydet'i seçin. Bir klasör oluşturun ve BCPData olarak adlandırır. Dosyayı Copyin.bat adlandırın ve Kaydet'i seçin.
    • Destek Yöneticisi Konsolu kullanıyorsanız Dosya'yı ve ardından Dışarı Aktar'ı seçin. Bir klasör oluşturun ve BCPData olarak adlandırır. Dosyayı Copyin.batolarak adlandırın. Ardından Kaydet'i seçin.
  6. Verileri şirket veritabanından taşımak için bir bcp komutu yapın. Bunu yapmak için uygun yöntemi kullanın.

    • Microsoft SQL Server 2000 veya MSDE 2000 için

      1. BCPData klasörünü açın.

      2. Copyout.bat dosyasına çift tıklayın.

        Not

        Toplu iş dosyası, veritabanındaki verileri bir metin dosyasına kopyalamak için BCP işlemini başlatır.

      3. BCPData klasörünü açın.

      4. Copyout.bat dosyasına sağ tıklayın ve düzenle'yi seçerek dosyayı Not Defteri'nde veya başka bir metin düzenleyicisinde açın

      5. Tüm metni seçin. Bunu yapmak için Düzenle'yi ve ardından Tümünü Seç'i seçin. Alternatif olarak Alt+A tuşlarına da bas.

      6. Copyout.bat dosyasındaki tüm metni Pano'ya kopyalayın. Bunu yapmak için Düzenle'yi ve ardından Kopyala'yı seçin. Alternatif olarak Ctrl+C tuşlarına da basabilirsiniz.

      7. Bir Komut İstemi penceresi açın. Bunu yapmak için Başlat'ı seçin, Çalıştır'ı seçin, cmd yazın ve ardından Tamam'ı seçin.

      8. Copyout.bat dosyasının içeriğini Komut İstemi penceresine yapıştırın. Bunu yapmak için pencereye sağ tıklayın ve yapıştır'ı seçin.

    • Microsoft SQL Server 2005 için

      1. BCPData klasörünü açın.

      2. Copyout.bat dosyasına çift tıklayın.

        Not

        Toplu iş dosyası, veritabanındaki verileri bir metin dosyasına kopyalamak için BCP işlemini başlatır.

  7. Şirketi Microsoft Dynamics GP içinden silin. Bunu yapmak için Great Plains'de sa kullanıcısı olarak oturum açın. Araçlar'ı seçin, Kurulum'un üzerine gelin, Sistem'in üzerine gelin ve şirket'i seçin. Listelenen tüm şirketleri görüntülemek için arama camını seçin. Şirketi ve ardından Sil'i seçin.

    Not

    Microsoft Great Plains 8.0'dan önceki Microsoft Great Plains sürümleri için şirketi silin. Şirketi silmek için aşağıdakileri yapın: Kurulum menüsünde Sistem'i ve ardından Şirket'i seçerek şirketi silin.

  8. Veritabanını kaldırın.

    • Microsoft SQL Server kullanıyorsanız Enterprise Manager'ı açın, sunucu adını genişletin, Veritabanı'nı genişletin, 7. adımda sildiğiniz şirket veritabanına sağ tıklayın ve sil'i seçin.

    • SQL Server 2000 Masaüstü Altyapısı kullanıyorsanız, aşağıdaki betiği çalıştırarak veritabanını Destek Yöneticisi Konsolu'ndan kaldırın; burada İkİ, veritabanının adıdır.

      DROP DATABASE TWO
      
  9. Şirket veritabanını ve yordamlarını yeniden oluşturun. Bunu yapmak için Microsoft Dynamics GP Yardımcı Programları'nı başlatın, sa kullanıcısı olarak oturum açın ve Ek Görevler iletişim kutusunda Yeni şirket oluştur'u seçin.

    Not

    7. adımda sildiğiniz şirket adıyla aynı şirket adını kullanın.

  10. Şirket oluşturulduktan sonra tabloların kesilmesi gerekir.

    • Microsoft SQL Server kullanıyorsanız Sorgu Çözümleyicisi'nde aşağıdaki Truncate_Table_Company.sql betiğini çalıştırın.

      /* 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 Masaüstü Altyapısı kullanıyorsanız, Destek Yöneticisi konsolunda aşağıdaki betikleri ayrı olarak çalıştırın.

      Betik 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
      

      Betik 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
      

      Betik 3

      ALTER TABLE dbo.RM00105 ADD CONSTRAINT RM_NationalAccounts_MSTR_FKC FOREIGN KEY ( CPRCSTNM ) REFERENCES dbo.RM00101 ( CUSTNMBR )
      
  11. Verileri şirket veritabanına geri taşıyın. Bunu yapmak için BCPData klasörünü açın ve Copyin.bat toplu iş dosyasına çift tıklayın. Bu toplu iş dosyasını çalıştırmak, verileri şirket veritabanına geri taşıma işlemini başlatır. Veriler veritabanına geri taşındığında, her tablo için tüm dizinler oluşturulur ve doğrulanır.

    Not

    İşlem tamamlandığında BCPData klasörü .err dosyalarını içerir. Bu .err dosyalarından herhangi biri 0 KB'tan büyükse, şirket veritabanı için veriler başarıyla içeri aktarılmamıştı.

Diğer adımlar

Microsoft SQL Server Sıralama Düzeninizi değiştirmek için BCP işlemini kullanıyorsanız verileri DYNAMICS veritabanından ve tüm Şirket veritabanlarından toplu olarak kopyalamanız gerekir.

Not

DYNAMICS veritabanı ve Şirket veritabanı için Microsoft SQL Server Sıralama Düzeni'nin değiştirilmesi Microsoft tarafından desteklenmez. Microsoft SQL Server Sıralama Düzeni'ni sizin için değiştirebilecek danışmanlık hizmetleri hakkında bilgi için, müşteri veya iş ortağı olmanıza bağlı olarak aşağıdaki seçeneklerden birini kullanın:

Müşteri:
Veri işleme danışmanlık hizmetleri hakkında daha fazla bilgi için kayıt iş ortağınıza başvurun. Kayıtlı bir iş ortağınız yoksa, bir iş ortağını tanımlamak için Microsoft Pinpoint'i ziyaret edin.

Ortak:
Veri işleme danışmanlık hizmetleri hakkında daha fazla bilgi için 800-MPN-SOLVE adresinden Microsoft Danışmanlık Hizmetleri ile iletişime geçin.

Bunu yapmak için Giriş bölümündeki 1 ile 11 arasında olan adımları izleyin. 10. adımda DYNAMICS veritabanını da kesmeniz gerekir. Bunu yapmak için aşağıdaki yöntemlerden birini kullanın:

  • Microsoft SQL Server kullanıyorsanız Sorgu Çözümleyicisi'nde aşağıdaki Truncate_Tables_Dynamics.sql betiğini çalıştırın.

    /* ** **
    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 Masaüstü Altyapısı kullanıyorsanız, Destek Yöneticisi konsolunda aşağıdaki betikleri ayrı olarak çalıştırın.

    • Betik 1

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

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

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

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