Cara menggunakan excel linked server

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Selanjutnya, Anda dapat menemukan informasi tentang penggunaan snapshot untuk mengimpor data Microsoft SQL Server Anda ke Amazon RDS. Anda juga dapat menemukan informasi tentang penggunaan snapshot untuk mengekspor data Anda dari instans DB RDS yang menjalankan SQL Server.

Jika skenario Anda mendukung, lebih mudah untuk memindahkan data ke dan dari Amazon RDS dengan menggunakan fungsi pencadangan native dan pemulihan native. Untuk informasi selengkapnya, lihat Mengimpor dan mengekspor basis data SQL Server menggunakan pencadangan dan pemulihan native.

Amazon RDS for Microsoft SQL Server tidak mendukung pengimporan data ke

--Disable triggers on all tables
    DECLARE @enable BIT = 0;
    DECLARE @trigger SYSNAME;
    DECLARE @table SYSNAME;
    DECLARE @cmd NVARCHAR(MAX);
    DECLARE trigger_cursor CURSOR FOR SELECT trigger_object.name trigger_name,
     table_object.name table_name
    FROM sysobjects trigger_object
    JOIN sysobjects table_object ON trigger_object.parent_obj = table_object.id
    WHERE trigger_object.type = 'TR';
    
    OPEN trigger_cursor;
    FETCH NEXT FROM trigger_cursor INTO @trigger, @table;
    
    WHILE @@FETCH_STATUS = 0 BEGIN
      IF @enable = 1
         SET @cmd = 'ENABLE ';
      ELSE
         SET @cmd = 'DISABLE ';
    
      SET @cmd = @cmd + ' TRIGGER dbo.'+QUOTENAME(@trigger)+' ON dbo.'+QUOTENAME(@table)+' ';
      EXEC (@cmd);
      FETCH NEXT FROM trigger_cursor INTO @trigger, @table;
    END
    
    CLOSE trigger_cursor;
    DEALLOCATE trigger_cursor;
    
    GO  
2basis data.

Mengimpor data ke RDS untuk SQL Server dengan menggunakan snapshot

Untuk mengimpor data ke dalam instans DB SQL Server dengan menggunakan snapshot

  1. Buat instans DB. Untuk informasi selengkapnya, lihat Membuat instans DB Amazon RDS.

  2. Hentikan aplikasi dari mengakses instans DB tujuan.

    Jika Anda mencegah akses ke instans DB saat mengimpor data, transfer data akan lebih cepat. Selain itu, Anda tidak perlu khawatir tentang konflik ketika data sedang dimuat jika aplikasi lain tidak dapat menulis ke instans DB pada waktu yang sama. Jika ada yang salah dan Anda harus kembali ke snapshot database sebelumnya, satu-satunya perubahan yang hilang adalah data hasil impor. Anda dapat mengimpor data ini kembali setelah Anda menyelesaikan masalah.

    Untuk informasi tentang mengontrol akses ke instans DB Anda, lihat Mengendalikan akses dengan kelompok keamanan.

  3. Buat snapshot database target.

    Jika database target sudah terisi data, kami menyarankan agar Anda mengambil snapshot database sebelum Anda melakukan impor data. Jika ada yang salah dalam impor data atau Anda ingin membuang perubahan, Anda dapat memulihkan database ke status sebelumnya dengan menggunakan snapshot. Untuk informasi tentang snapshot database, lihat Membuat snapshot DB.

    Saat Anda mengambil snapshot database, operasi I/O ke database ditangguhkan untuk beberapa saat (milidetik) saat pencadangan sedang berlangsung.

  4. Nonaktifkan pencadangan otomatis pada database target.

    Menonaktifkan pencadangan otomatis pada instans DB target akan meningkatkan kinerja saat Anda mengimpor data Anda karena Amazon RDS tidak mencatat transaksi ketika pencadangan otomatis dinonaktifkan. Namun, ada beberapa hal yang perlu dipertimbangkan. Pencadangan otomatis diperlukan untuk melakukan point-in-time pemulihan. Dengan demikian, Anda tidak dapat memulihkan database ke titik waktu tertentu saat Anda melakukan impor data. Selain itu, semua pencadangan otomatis yang dibuat di instans DB akan dihapus kecuali jika Anda memilih untuk menyimpannya.

    Memilih untuk menyimpan pencadangan otomatis dapat membantu melindungi Anda dari menghapus data secara tidak sengaja. Amazon RDS juga menyimpan properti instans database bersamaan dengan setiap pencadangan otomatis agar mudah dipulihkan. Dengan opsi ini, Anda dapat memulihkan instans database yang telah dihapus ke titik tertentu dalam periode retensi pencadangan bahkan setelah menghapusnya. Pencadangan otomatis secara otomatis dihapus di akhir waktu backup yang ditentukan, seperti halnya untuk instans database aktif.

    Anda juga dapat menggunakan snapshot sebelumnya untuk memulihkan database, dan semua snapshot yang Anda ambil tetap tersedia. Untuk informasi tentang pencadangan otomatis, lihat Bekerja dengan backup.

  5. Nonaktifkan batasan kunci asing, jika berlaku.

    Jika Anda perlu menonaktifkan batasan kunci asing, Anda dapat melakukannya dengan skrip berikut.

    --Disable foreign keys on all tables
        DECLARE @table_name SYSNAME;
        DECLARE @cmd NVARCHAR(MAX);
        DECLARE table_cursor CURSOR FOR SELECT name FROM sys.tables;
        
        OPEN table_cursor;
        FETCH NEXT FROM table_cursor INTO @table_name;
        
        WHILE @@FETCH_STATUS = 0 BEGIN
          SELECT @cmd = 'ALTER TABLEĀ '+QUOTENAME(@table_name)+' NOCHECK CONSTRAINT ALL';
          EXEC (@cmd);
          FETCH NEXT FROM table_cursor INTO @table_name;
        END
        
        CLOSE table_cursor;
        DEALLOCATE table_cursor;
        
        GO  
  6. Lepaskan indeks, jika berlaku.

  7. Nonaktifkan pemicu, jika berlaku.

    Jika Anda perlu menonaktifkan pemicu, Anda dapat melakukannya dengan skrip berikut.

    --Disable triggers on all tables
        DECLARE @enable BIT = 0;
        DECLARE @trigger SYSNAME;
        DECLARE @table SYSNAME;
        DECLARE @cmd NVARCHAR(MAX);
        DECLARE trigger_cursor CURSOR FOR SELECT trigger_object.name trigger_name,
         table_object.name table_name
        FROM sysobjects trigger_object
        JOIN sysobjects table_object ON trigger_object.parent_obj = table_object.id
        WHERE trigger_object.type = 'TR';
        
        OPEN trigger_cursor;
        FETCH NEXT FROM trigger_cursor INTO @trigger, @table;
        
        WHILE @@FETCH_STATUS = 0 BEGIN
          IF @enable = 1
             SET @cmd = 'ENABLE ';
          ELSE
             SET @cmd = 'DISABLE ';
        
          SET @cmd = @cmd + ' TRIGGER dbo.'+QUOTENAME(@trigger)+' ON dbo.'+QUOTENAME(@table)+' ';
          EXEC (@cmd);
          FETCH NEXT FROM trigger_cursor INTO @trigger, @table;
        END
        
        CLOSE trigger_cursor;
        DEALLOCATE trigger_cursor;
        
        GO  
  8. Kueri sumber instans SQL Server untuk setiap login yang ingin Anda impor ke instans DB tujuan.

    SQL Server menyimpan login dan kata sandi di database

    --Disable triggers on all tables
        DECLARE @enable BIT = 0;
        DECLARE @trigger SYSNAME;
        DECLARE @table SYSNAME;
        DECLARE @cmd NVARCHAR(MAX);
        DECLARE trigger_cursor CURSOR FOR SELECT trigger_object.name trigger_name,
         table_object.name table_name
        FROM sysobjects trigger_object
        JOIN sysobjects table_object ON trigger_object.parent_obj = table_object.id
        WHERE trigger_object.type = 'TR';
        
        OPEN trigger_cursor;
        FETCH NEXT FROM trigger_cursor INTO @trigger, @table;
        
        WHILE @@FETCH_STATUS = 0 BEGIN
          IF @enable = 1
             SET @cmd = 'ENABLE ';
          ELSE
             SET @cmd = 'DISABLE ';
        
          SET @cmd = @cmd + ' TRIGGER dbo.'+QUOTENAME(@trigger)+' ON dbo.'+QUOTENAME(@table)+' ';
          EXEC (@cmd);
          FETCH NEXT FROM trigger_cursor INTO @trigger, @table;
        END
        
        CLOSE trigger_cursor;
        DEALLOCATE trigger_cursor;
        
        GO  
    3. Karena Amazon RDS tidak memberikan akses ke database
    --Disable triggers on all tables
        DECLARE @enable BIT = 0;
        DECLARE @trigger SYSNAME;
        DECLARE @table SYSNAME;
        DECLARE @cmd NVARCHAR(MAX);
        DECLARE trigger_cursor CURSOR FOR SELECT trigger_object.name trigger_name,
         table_object.name table_name
        FROM sysobjects trigger_object
        JOIN sysobjects table_object ON trigger_object.parent_obj = table_object.id
        WHERE trigger_object.type = 'TR';
        
        OPEN trigger_cursor;
        FETCH NEXT FROM trigger_cursor INTO @trigger, @table;
        
        WHILE @@FETCH_STATUS = 0 BEGIN
          IF @enable = 1
             SET @cmd = 'ENABLE ';
          ELSE
             SET @cmd = 'DISABLE ';
        
          SET @cmd = @cmd + ' TRIGGER dbo.'+QUOTENAME(@trigger)+' ON dbo.'+QUOTENAME(@table)+' ';
          EXEC (@cmd);
          FETCH NEXT FROM trigger_cursor INTO @trigger, @table;
        END
        
        CLOSE trigger_cursor;
        DEALLOCATE trigger_cursor;
        
        GO  
    3, Anda tidak dapat langsung melakukan impor login dan kata sandi ke instans DB tujuan Anda. Sebaliknya, Anda harus kueri database
    --Disable triggers on all tables
        DECLARE @enable BIT = 0;
        DECLARE @trigger SYSNAME;
        DECLARE @table SYSNAME;
        DECLARE @cmd NVARCHAR(MAX);
        DECLARE trigger_cursor CURSOR FOR SELECT trigger_object.name trigger_name,
         table_object.name table_name
        FROM sysobjects trigger_object
        JOIN sysobjects table_object ON trigger_object.parent_obj = table_object.id
        WHERE trigger_object.type = 'TR';
        
        OPEN trigger_cursor;
        FETCH NEXT FROM trigger_cursor INTO @trigger, @table;
        
        WHILE @@FETCH_STATUS = 0 BEGIN
          IF @enable = 1
             SET @cmd = 'ENABLE ';
          ELSE
             SET @cmd = 'DISABLE ';
        
          SET @cmd = @cmd + ' TRIGGER dbo.'+QUOTENAME(@trigger)+' ON dbo.'+QUOTENAME(@table)+' ';
          EXEC (@cmd);
          FETCH NEXT FROM trigger_cursor INTO @trigger, @table;
        END
        
        CLOSE trigger_cursor;
        DEALLOCATE trigger_cursor;
        
        GO  
    3 pada sumber instans SQL Server untuk membuat file data definition language (DDL). File ini harus mencakup semua login dan kata sandi yang ingin Anda tambahkan ke instans DB tujuan. File ini juga harus menyertakan keanggotaan peran dan izin yang ingin Anda transfer.

    Untuk informasi tentang membuat kueri database

    --Disable triggers on all tables
        DECLARE @enable BIT = 0;
        DECLARE @trigger SYSNAME;
        DECLARE @table SYSNAME;
        DECLARE @cmd NVARCHAR(MAX);
        DECLARE trigger_cursor CURSOR FOR SELECT trigger_object.name trigger_name,
         table_object.name table_name
        FROM sysobjects trigger_object
        JOIN sysobjects table_object ON trigger_object.parent_obj = table_object.id
        WHERE trigger_object.type = 'TR';
        
        OPEN trigger_cursor;
        FETCH NEXT FROM trigger_cursor INTO @trigger, @table;
        
        WHILE @@FETCH_STATUS = 0 BEGIN
          IF @enable = 1
             SET @cmd = 'ENABLE ';
          ELSE
             SET @cmd = 'DISABLE ';
        
          SET @cmd = @cmd + ' TRIGGER dbo.'+QUOTENAME(@trigger)+' ON dbo.'+QUOTENAME(@table)+' ';
          EXEC (@cmd);
          FETCH NEXT FROM trigger_cursor INTO @trigger, @table;
        END
        
        CLOSE trigger_cursor;
        DEALLOCATE trigger_cursor;
        
        GO  
    3, lihat Cara mentransfer login and kata sandi antar instans SQL Server 2005 dan SQL Server 2008di Microsoft Knowledge Base.

    Output dari skrip tersebut adalah skrip lain yang dapat Anda jalankan di instans DB tujuan. Script dalam artikel Knowledge Base memiliki kode berikut:

    p.type IN 

    Setiap tempat

    --Disable triggers on all tables
        DECLARE @enable BIT = 0;
        DECLARE @trigger SYSNAME;
        DECLARE @table SYSNAME;
        DECLARE @cmd NVARCHAR(MAX);
        DECLARE trigger_cursor CURSOR FOR SELECT trigger_object.name trigger_name,
         table_object.name table_name
        FROM sysobjects trigger_object
        JOIN sysobjects table_object ON trigger_object.parent_obj = table_object.id
        WHERE trigger_object.type = 'TR';
        
        OPEN trigger_cursor;
        FETCH NEXT FROM trigger_cursor INTO @trigger, @table;
        
        WHILE @@FETCH_STATUS = 0 BEGIN
          IF @enable = 1
             SET @cmd = 'ENABLE ';
          ELSE
             SET @cmd = 'DISABLE ';
        
          SET @cmd = @cmd + ' TRIGGER dbo.'+QUOTENAME(@trigger)+' ON dbo.'+QUOTENAME(@table)+' ';
          EXEC (@cmd);
          FETCH NEXT FROM trigger_cursor INTO @trigger, @table;
        END
        
        CLOSE trigger_cursor;
        DEALLOCATE trigger_cursor;
        
        GO  
    7 muncul, gunakan kode berikut ini:

    p.type = 'S' 
  9. Impor data menggunakan metode di .

  10. Berikan akses aplikasi ke instans DB target.

    Setelah impor data selesai, Anda dapat memberikan akses ke instans DB pada aplikasi yang Anda blokir selama impor. Untuk informasi tentang mengontrol akses ke instans DB Anda, lihat Mengendalikan akses dengan kelompok keamanan.

  11. Aktifkan pencadangan otomatis pada instans DB target.

    Untuk informasi tentang pencadangan otomatis, lihat Bekerja dengan backup.

  12. Aktifkan batasan kunci asing.

    Jika Anda menonaktifkan batasan kunci asing sebelumnya, sekarang Anda dapat mengaktifkannya dengan skrip berikut.

    --Enable foreign keys on all tables
        DECLARE @table_name SYSNAME;
        DECLARE @cmd NVARCHAR(MAX);
        DECLARE table_cursor CURSOR FOR SELECT name FROM sys.tables;
        
        OPEN table_cursor;
        FETCH NEXT FROM table_cursor INTO @table_name;
        
        WHILE @@FETCH_STATUS = 0 BEGIN
          SELECT @cmd = 'ALTER TABLE '+QUOTENAME(@table_name)+' CHECK CONSTRAINT ALL';
          EXEC (@cmd);
          FETCH NEXT FROM table_cursor INTO @table_name;
        END
        
        CLOSE table_cursor;
        DEALLOCATE table_cursor;  
  13. Aktifkan indeks, jika berlaku.

  14. Aktifkan pemicu, jika berlaku.

    Jika Anda menonaktifkan pemicu sebelumnya, sekarang Anda dapat mengaktifkannya dengan skrip berikut.

    --Enable triggers on all tables
        DECLARE @enable BIT = 1;
        DECLARE @trigger SYSNAME;
        DECLARE @table SYSNAME;
        DECLARE @cmd NVARCHAR(MAX);
        DECLARE trigger_cursor CURSOR FOR SELECT trigger_object.name trigger_name,
         table_object.name table_name
        FROM sysobjects trigger_object
        JOIN sysobjects table_object ON trigger_object.parent_obj = table_object.id
        WHERE trigger_object.type = 'TR';
        
        OPEN trigger_cursor;
        FETCH NEXT FROM trigger_cursor INTO @trigger, @table;
        
        WHILE @@FETCH_STATUS = 0 BEGIN
          IF @enable = 1
             SET @cmd = 'ENABLE ';
          ELSE
             SET @cmd = 'DISABLE ';
        
          SET @cmd = @cmd + ' TRIGGER dbo.'+QUOTENAME(@trigger)+' ON dbo.'+QUOTENAME(@table)+' ';
          EXEC (@cmd);
          FETCH NEXT FROM trigger_cursor INTO @trigger, @table;
        END
        
        CLOSE trigger_cursor;
        DEALLOCATE trigger_cursor;  

Mengimpor data

Microsoft SQL Server Management Studio adalah klien SQL Server grafis yang disertakan dalam semua edisi Microsoft SQL Server kecuali Express Edition. SQL Server Management Studio Express tersedia dari Microsoft sebagai unduhan gratis. Untuk menemukan unduhan ini, lihat situs web Microsoft.

SQL Server Management Studio hanya tersedia sebagai aplikasi berbasis Windows.

SQL Server Management Studio mencakup alat-alat berikut, yang berguna dalam melakukan impor data ke instans DB SQL Server:

  • Wizard Membuat dan Menerbitkan Skrip

  • Wizard Impor dan Ekspor

  • Penyalinan massal

Wizard Membuat dan Menerbitkan Skrip

Wizard Membuat dan Menerbitkan Skrip membuat skrip yang berisi skema database, data itu sendiri, atau keduanya. Anda dapat membuat skrip untuk database dalam penerapan SQL Server lokal Anda. Kemudian, Anda dapat menjalankan skrip untuk mentransfer informasi yang dimuat ke instans DB Amazon RDS.

Untuk basis data sebesar 1 GiB atau lebih besar, lebih efisien jika hanya membuat skrip skema basis data. Anda kemudian menggunakan Wizard Impor dan Ekspor atau fitur penyalinan massal dari SQL Server untuk mentransfer data.

Untuk informasi terperinci tentang Wizard Membuat dan Menerbitkan Skrip, lihat Dokumentasi Microsoft SQL Server.

Di dalam wizard, perhatikan dengan cermat opsi lanjutan pada halaman Tetapkan Opsi Pembuatan Skrip untuk memastikan bahwa semua yang Anda inginkan dalam skrip Anda sudah dipilih. Misalnya, secara default, pemicu database tidak disertakan dalam skrip.

Saat skrip dibuat dan disimpan, Anda dapat menggunakan SQL Server Management Studio untuk membuat koneksi ke instans DB Anda lalu menjalankan skrip tersebut.

Wizard Impor dan Ekspor

Wizard Impor dan Ekspor membuat paket Layanan Integrasi khusus, yang dapat Anda gunakan untuk menyalin data dari database SQL Server lokal Anda ke instans DB tujuan. Wizard dapat menyaring tabel mana dan bahkan tupel mana dalam tabel yang disalin ke instans DB tujuan.

Wizard Impor dan Ekspor berfungsi dengan baik untuk rangkaian data besar, tapi mungkin bukan cara tercepat untuk melakukan ekspor data jarak jauh dari penerapan lokal Anda. Untuk cara yang lebih cepat, pertimbangkan fitur penyalinan massal SQL Server.

Untuk informasi terperinci tentang Wizard Impor dan Ekspor, lihat Dokumentasi Microsoft SQL Server.

Dalam wizard, di halaman Pilih Tujuan, lakukan hal berikut:

  • Untuk Nama Server, ketik nama endpoint untuk instans DB Anda.

  • Untuk mode autentikasi server, pilih Gunakan Autentikasi SQL Server.

  • Untuk Nama pengguna dan Kata Sandi, ketik kredensial untuk pengguna utama yang Anda buat untuk instans DB.

Penyalinan massal

Fitur penyalinan massal SQL Server adalah cara efisien menyalin data dari database sumber ke instans DB Anda. Penyalinan massal menuliskan data yang Anda tentukan ke file data, seperti file ASCII. Anda kemudian dapat menjalankan penyalinan massal untuk menulis isi file ke instans DB tujuan.

Bagian ini menggunakan utilitas bcp, yang sudah ada dalam semua edisi SQL Server. Untuk informasi detail tentang operasi impor and ekspor secara massal, lihat Dokumentasi Microsoft SQL Server.

Sebelum Anda menggunakan penyalinan massal, Anda harus mengimpor skema database Anda terlebih dahulu ke instans DB tujuan. Wizard Membuat dan Menerbitkan Skrip, yang dijelaskan sebelumnya dalam topik ini, adalah alat yang sangat baik untuk tujuan ini.

Perintah berikut terkoneksi ke instans SQL Server lokal. Perintah tersebut membuat file tab-delimited dari tabel yang ditentukan dalam direktori root C:\ dari penerapan SQL Server Anda. Tabel ditentukan oleh nama yang sesuai syarat, dan file teks memiliki nama yang sama dengan tabel yang sedang disalin.

bcp dbname.schema_name.table_name out C:\table_name.txt -n -S localhost -U username -P password -b 10000 

Kode sebelumnya mencakup opsi berikut:

  • --Disable triggers on all tables
        DECLARE @enable BIT = 0;
        DECLARE @trigger SYSNAME;
        DECLARE @table SYSNAME;
        DECLARE @cmd NVARCHAR(MAX);
        DECLARE trigger_cursor CURSOR FOR SELECT trigger_object.name trigger_name,
         table_object.name table_name
        FROM sysobjects trigger_object
        JOIN sysobjects table_object ON trigger_object.parent_obj = table_object.id
        WHERE trigger_object.type = 'TR';
        
        OPEN trigger_cursor;
        FETCH NEXT FROM trigger_cursor INTO @trigger, @table;
        
        WHILE @@FETCH_STATUS = 0 BEGIN
          IF @enable = 1
             SET @cmd = 'ENABLE ';
          ELSE
             SET @cmd = 'DISABLE ';
        
          SET @cmd = @cmd + ' TRIGGER dbo.'+QUOTENAME(@trigger)+' ON dbo.'+QUOTENAME(@table)+' ';
          EXEC (@cmd);
          FETCH NEXT FROM trigger_cursor INTO @trigger, @table;
        END
        
        CLOSE trigger_cursor;
        DEALLOCATE trigger_cursor;
        
        GO  
    8 menentukan bahwa penyalinan massal menggunakan tipe data native dari data yang akan disalin.

  • --Disable triggers on all tables
        DECLARE @enable BIT = 0;
        DECLARE @trigger SYSNAME;
        DECLARE @table SYSNAME;
        DECLARE @cmd NVARCHAR(MAX);
        DECLARE trigger_cursor CURSOR FOR SELECT trigger_object.name trigger_name,
         table_object.name table_name
        FROM sysobjects trigger_object
        JOIN sysobjects table_object ON trigger_object.parent_obj = table_object.id
        WHERE trigger_object.type = 'TR';
        
        OPEN trigger_cursor;
        FETCH NEXT FROM trigger_cursor INTO @trigger, @table;
        
        WHILE @@FETCH_STATUS = 0 BEGIN
          IF @enable = 1
             SET @cmd = 'ENABLE ';
          ELSE
             SET @cmd = 'DISABLE ';
        
          SET @cmd = @cmd + ' TRIGGER dbo.'+QUOTENAME(@trigger)+' ON dbo.'+QUOTENAME(@table)+' ';
          EXEC (@cmd);
          FETCH NEXT FROM trigger_cursor INTO @trigger, @table;
        END
        
        CLOSE trigger_cursor;
        DEALLOCATE trigger_cursor;
        
        GO  
    9 menentukan instans SQL Server yang terkoneksi dengan utilitas bcp.

  • p.type IN 
    0 menentukan nama pengguna akun untuk login ke instans SQL Server.

  • p.type IN 
    1 menentukan kata sandi untuk pengguna yang ditentukan oleh
    p.type IN 
    0.

  • p.type IN 
    3 menentukan jumlah baris per batch dari data yang diimpor.

Mungkin ada parameter lain yang penting untuk situasi impor Anda. Misalnya, Anda mungkin memerlukan parameter

p.type IN 
4 yang berkaitan dengan nilai identitas. Untuk informasi lebih lanjut; lihat deskripsi lengkap sintaks baris perintah untuk utilitas bcp di Dokumentasi Microsoft SQL Server.

Sebagai contoh, anggaplah basis data bernama

p.type IN 
5 yang menggunakan skema default,
p.type IN 
6, berisi tabel bernama
p.type IN 
7. Akun pengguna
p.type IN 
8, dengan kata sandi
p.type IN 
9, menyalin 10.000 baris tabel
p.type IN 
7 ke sebuah file bernama
p.type = 'S' 
1.

bcp store.dbo.customers out C:\customers.txt -n -S localhost -U admin -P insecure -b 10000 

Setelah Anda membuat file data, Anda dapat mengunggah data ke instans DB Anda dengan menggunakan perintah serupa. Sebelumnya, buat database dan skema pada instans DB target. Lalu gunakan argumen

p.type = 'S' 
2 untuk menentukan file input, bukan
p.type = 'S' 
3 untuk menentukan file output. Dibanding menggunakan localhost untuk menentukan instans SQL Server lokal, tentukan endpoint instans DB Anda. Jika Anda menggunakan port selain 1433, sebutkan juga. Nama pengguna dan kata sandi adalah pengguna utama dan kata sandi untuk instans DB Anda. Sintaksnya adalah sebagai berikut.

bcp dbname.schema_name.table_name in C:\table_name.txt -n -S endpoint,port -U master_user_name -P master_user_password -b 10000 

Untuk melanjutkan contoh sebelumnya, anggaplah bahwa nama pengguna master adalah

p.type IN 
8, dan kata sandinya adalah
p.type IN 
9. Titik akhir untuk instans DB adalah
p.type = 'S' 
6, dan Anda menggunakan port 4080. Perintah yang digunakan adalah sebagai berikut.

bcp store.dbo.customers in C:\customers.txt -n -S rds.ckz2kqd4qsn1.us-east-1.rds.amazonaws.com,4080 -U admin -P insecure -b 10000 

Mengekspor data dari RDS untuk SQL Server

Anda dapat memilih salah satu opsi berikut untuk mengekspor data dari instans DB RDS untuk SQL Server:

Wizard Impor dan Ekspor pada SQL Server

Anda dapat menggunakan Wizard Impor and Ekspor SQL Server untuk menyalin satu atau lebih tabel, tampilan, atau kueri dari instans DB RDS untuk SQL Server Anda ke penyimpanan data lain. Pilihan ini baik dilakukan jika penyimpanan data target bukan SQL Server. Untuk informasi lebih lanjut, lihat Wizard Impor dan Ekspor pada SQL Serverdalam dokumentasi SQL Server.

Wizard Impor dan Ekspor pada SQL Server tersedia sebagai bagian dari Microsoft SQL Server Management Studio. Klien SQL Server grafis ini tersedia dalam semua edisi Microsoft SQL Server kecuali Express Edition. SQL Server Management Studio hanya tersedia sebagai aplikasi berbasis Windows. SQL Server Management Studio Express tersedia dari Microsoft sebagai unduhan gratis. Untuk menemukan unduhan ini, lihat situs web Microsoft.

Untuk menggunakan Wizard Impor dan Ekspor pada SQL Server untuk ekspor data

  1. Dalam SQL Server Management Studio, hubungkan ke instans DB RDS untuk SQL Server Anda. Untuk detail tentang cara melakukannya, lihat Menghubungkan ke instans DB yang menjalankan mesin basis data Microsoft SQL Server.

  2. Dalam Penjelajah objek, perluas Database, buka menu konteks (klik kanan) untuk database sumber, pilih Tugas, lalu pilih Ekspor Data. Wizard akan muncul.

  3. Di halaman Pilih Sumber Data, lakukan hal berikut:

    1. Untuk Sumber Data, pilih

      p.type = 'S' 
      7.

    2. Verifikasi bahwa kotak Nama server menampilkan titik akhir instans DB RDS untuk SQL Server Anda.

    3. Pilih Gunakan Autentikasi SQL Server. Untuk Nama pengguna dan Kata sandi, ketik nama pengguna master dan kata sandi instans DB Anda.

    4. Verifikasi bahwa kotak Database menampilkan database tempat Anda ingin melakukan ekspor data.

    5. Pilih Selanjutnya.

  4. Di halaman Pilih Tujuan, lakukan hal berikut:

    1. Untuk Tujuan, pilih

      p.type = 'S' 
      7.

      Sumber data target lainnya tersedia. Ini termasuk penyedia data .NET Framework, penyedia OLE DB, penyedia SQL Server Native Client, penyedia ADO.NET, Microsoft Office Excel, Microsoft Office Access, dan sumber Flat File. Jika Anda memilih untuk menargetkan salah satu sumber data ini, lewati sisa langkah 4. Untuk detail tentang informasi koneksi yang harus diberikan selanjutnya, lihat Pilih tujuandalam dokumentasi SQL Server.

    2. Untuk Nama server, ketik nama server dari instans DB SQL Server target.

    3. Pilih jenis autentikasi yang sesuai. Ketik nama pengguna dan kata sandi jika perlu.

    4. Untuk Database, pilih nama database target, atau pilih Baru untuk membuat database baru untuk diisi data yang di-ekspor.

      Jika Anda memilih Baru, lihat Buat databasedalam dokumentasi SQL Server untuk perincian tentang informasi database yang akan diberikan.

    5. Pilih Selanjutnya.

  5. Di halaman Salinan atau Kueri Tabel, pilih Salin data dari satu atau lebih tabel atau tampilan atau Tulis kueri untuk menentukan data yang akan ditransfer. Pilih Selanjutnya.

  6. Jika Anda memilih Tulis kueri untuk menentukan data yang akan ditransfer, Anda akan melihat halaman Berikan Kueri Sumber. Ketik atau tempel dalam kueri SQL, lalu pilih Parse untuk memverifikasinya. Setelah kueri memvalidasi, pilih Lanjut.

  7. Di halaman Pilih Tabel dan Tampilan Sumber, lakukan hal berikut:

    1. Pilih tabel dan tampilan yang ingin Anda ekspor, atau verifikasi bahwa kueri yang Anda berikan sudah dipilih.

    2. Pilih Ubah Pemetaan dan tentukan database dan informasi pemetaan kolom. Untuk informasi lebih lanjut, lihat Pemetaan kolomdalam dokumentasi SQL Server.

    3. (Opsional) Untuk melihat pratinjau data yang akan diekspor, pilih tabel, tampilan, atau kueri, kemudian pilih Pratinjau.

    4. Pilih Selanjutnya.

  8. Di halaman Jalankan Paket, pastikan bahwa Jalankan Segera dipilih. Pilih Selanjutnya.

  9. Di halaman Selesaikan Wizard, pastikan bahwa detail ekspor data sudah seperti yang Anda harapkan. Pilih Selesai.

  10. Di halaman Eksekusi berhasil, pilih Tutup.

Wizard Membuat dan Menerbitkan Skrip dan utilitas bcp pada SQL Server

Anda dapat menggunakan Wizard Membuat dan Menerbitkan Skrip SQL Server untuk membuat skrip untuk seluruh database atau hanya objek yang dipilih. Anda dapat menjalankan skrip ini di instans DB SQL Server target untuk membuat ulang objek yang terskrip. Anda kemudian dapat menggunakan utilitas bcp untuk melakukan bulk ekspor data untuk objek yang dipilih ke instans DB target. Pilihan ini baik dilakukan jika Anda ingin memindahkan seluruh database (termasuk objek selain tabel) atau data dalam jumlah besar antara dua instans DB SQL Server. Untuk deskripsi lengkap dari sintaks baris perintah bcp, lihat utilitas bcpdalam dokumentasi Microsoft SQL Server.

Wizard Membuat dan Menerbitkan Skrip pada SQL Server tersedia sebagai bagian dari Microsoft SQL Server Management Studio. Klien SQL Server grafis ini tersedia dalam semua edisi Microsoft SQL Server kecuali Express Edition. SQL Server Management Studio hanya tersedia sebagai aplikasi berbasis Windows. SQL Server Management Studio Express tersedia dari Microsoft sebagai unduhan gratis.

Untuk menggunakan Wizard Membuat dan Menerbitkan Skrip serta utilitas bcp SQL Server untuk mengekspor data

  1. Dalam SQL Server Management Studio, hubungkan ke instans DB RDS untuk SQL Server Anda. Untuk detail tentang cara melakukannya, lihat Menghubungkan ke instans DB yang menjalankan mesin basis data Microsoft SQL Server.

  2. Pada Penjelajah objek, perluas Database dan pilih database yang ingin Anda skripkan.

  3. Ikuti petunjuk di Wizard Membuat dan Menerbitkan Skripdalam dokumentasi SQL Server untuk membuat file skrip.

  4. Di SQL Server Management Studio, buat koneksi ke instans DB SQL Server target Anda.

  5. Dengan instans DB SQL Server target yang dipilih di Penjelajah Objek, pilih Buka pada menu File, pilih File, lalu buka file skrip.

  6. Jika Anda telah membuat skrip seluruh database, tinjau pernyataan CREATE DATABASE dalam skrip. Pastikan database dibuat di lokasi dan dengan parameter yang Anda inginkan. Untuk informasi lebih lanjut, lihat CREATE DATABASEdalam dokumentasi SQL Server.

  7. Jika Anda membuat pengguna database dalam skrip, periksalah untuk melihat apakah login server ada pada instans DB target untuk pengguna tersebut. Jika tidak, buat login untuk pengguna tersebut; jika tidak, perintah terskrip untuk membuat database akan gagal. Untuk informasi lebih lanjut, lihat Buat logindalam dokumentasi SQL Server.

  8. Pilih !Execute pada menu SQL Editor untuk menjalankan file skrip dan membuat objek database. Saat skrip selesai, verifikasi bahwa semua objek database yang ada sesuai dengan yang diharapkan.

  9. Gunakan utilitas bcp untuk mengekspor data dari instans DB RDS untuk SQL Server ke dalam file. Buka perintah prompt dan ketik perintah berikut.

    --Disable triggers on all tables
        DECLARE @enable BIT = 0;
        DECLARE @trigger SYSNAME;
        DECLARE @table SYSNAME;
        DECLARE @cmd NVARCHAR(MAX);
        DECLARE trigger_cursor CURSOR FOR SELECT trigger_object.name trigger_name,
         table_object.name table_name
        FROM sysobjects trigger_object
        JOIN sysobjects table_object ON trigger_object.parent_obj = table_object.id
        WHERE trigger_object.type = 'TR';
        
        OPEN trigger_cursor;
        FETCH NEXT FROM trigger_cursor INTO @trigger, @table;
        
        WHILE @@FETCH_STATUS = 0 BEGIN
          IF @enable = 1
             SET @cmd = 'ENABLE ';
          ELSE
             SET @cmd = 'DISABLE ';
        
          SET @cmd = @cmd + ' TRIGGER dbo.'+QUOTENAME(@trigger)+' ON dbo.'+QUOTENAME(@table)+' ';
          EXEC (@cmd);
          FETCH NEXT FROM trigger_cursor INTO @trigger, @table;
        END
        
        CLOSE trigger_cursor;
        DEALLOCATE trigger_cursor;
        
        GO  
    0

    Kode sebelumnya mencakup opsi berikut:

    • table_name adalah nama dari salah satu tabel yang telah Anda buat ulang di database target dan sekarang ingin diisi dengan data.

    • data_file adalah jalur lengkap dan nama file data yang akan dibuat.

    • --Disable triggers on all tables
          DECLARE @enable BIT = 0;
          DECLARE @trigger SYSNAME;
          DECLARE @table SYSNAME;
          DECLARE @cmd NVARCHAR(MAX);
          DECLARE trigger_cursor CURSOR FOR SELECT trigger_object.name trigger_name,
           table_object.name table_name
          FROM sysobjects trigger_object
          JOIN sysobjects table_object ON trigger_object.parent_obj = table_object.id
          WHERE trigger_object.type = 'TR';
          
          OPEN trigger_cursor;
          FETCH NEXT FROM trigger_cursor INTO @trigger, @table;
          
          WHILE @@FETCH_STATUS = 0 BEGIN
            IF @enable = 1
               SET @cmd = 'ENABLE ';
            ELSE
               SET @cmd = 'DISABLE ';
          
            SET @cmd = @cmd + ' TRIGGER dbo.'+QUOTENAME(@trigger)+' ON dbo.'+QUOTENAME(@table)+' ';
            EXEC (@cmd);
            FETCH NEXT FROM trigger_cursor INTO @trigger, @table;
          END
          
          CLOSE trigger_cursor;
          DEALLOCATE trigger_cursor;
          
          GO  
      8 menentukan bahwa penyalinan massal menggunakan tipe data native dari data yang akan disalin.

    • --Disable triggers on all tables
          DECLARE @enable BIT = 0;
          DECLARE @trigger SYSNAME;
          DECLARE @table SYSNAME;
          DECLARE @cmd NVARCHAR(MAX);
          DECLARE trigger_cursor CURSOR FOR SELECT trigger_object.name trigger_name,
           table_object.name table_name
          FROM sysobjects trigger_object
          JOIN sysobjects table_object ON trigger_object.parent_obj = table_object.id
          WHERE trigger_object.type = 'TR';
          
          OPEN trigger_cursor;
          FETCH NEXT FROM trigger_cursor INTO @trigger, @table;
          
          WHILE @@FETCH_STATUS = 0 BEGIN
            IF @enable = 1
               SET @cmd = 'ENABLE ';
            ELSE
               SET @cmd = 'DISABLE ';
          
            SET @cmd = @cmd + ' TRIGGER dbo.'+QUOTENAME(@trigger)+' ON dbo.'+QUOTENAME(@table)+' ';
            EXEC (@cmd);
            FETCH NEXT FROM trigger_cursor INTO @trigger, @table;
          END
          
          CLOSE trigger_cursor;
          DEALLOCATE trigger_cursor;
          
          GO  
      9 menentukan instans DB SQL Server untuk ekspor.

    • p.type IN 
      0 menentukan nama pengguna yang digunakan saat terkoneksi ke instans DB SQL Server.

    • p.type IN 
      1 menentukan kata sandi untuk pengguna yang ditentukan oleh
      p.type IN 
      0.

    Hal berikut menunjukkan contoh perintah.

    --Disable triggers on all tables
        DECLARE @enable BIT = 0;
        DECLARE @trigger SYSNAME;
        DECLARE @table SYSNAME;
        DECLARE @cmd NVARCHAR(MAX);
        DECLARE trigger_cursor CURSOR FOR SELECT trigger_object.name trigger_name,
         table_object.name table_name
        FROM sysobjects trigger_object
        JOIN sysobjects table_object ON trigger_object.parent_obj = table_object.id
        WHERE trigger_object.type = 'TR';
        
        OPEN trigger_cursor;
        FETCH NEXT FROM trigger_cursor INTO @trigger, @table;
        
        WHILE @@FETCH_STATUS = 0 BEGIN
          IF @enable = 1
             SET @cmd = 'ENABLE ';
          ELSE
             SET @cmd = 'DISABLE ';
        
          SET @cmd = @cmd + ' TRIGGER dbo.'+QUOTENAME(@trigger)+' ON dbo.'+QUOTENAME(@table)+' ';
          EXEC (@cmd);
          FETCH NEXT FROM trigger_cursor INTO @trigger, @table;
        END
        
        CLOSE trigger_cursor;
        DEALLOCATE trigger_cursor;
        
        GO  
    1

    Ulangi langkah ini hingga Anda memiliki file data untuk semua tabel yang ingin Anda ekspor.

  10. Siapkan instans DB target Anda untuk impor data secara massal dengan mengikuti petunjuk di Panduan dasar untuk mengimpor data secara massaldalam dokumentasi SQL Server.

  11. Tentukan metode impor massal yang akan digunakan setelah mempertimbangkan kinerja dan kekhawatiran lain yang dibahas dalam Tentang operasi impor massal dan ekspor massaldalam dokumentasi SQL Server.

  12. Impor data secara massal dari file data yang Anda buat dengan menggunakan utilitas bcp. Untuk melakukannya, ikuti petunjuk di impor dan ekspor data massal dengan menggunakan utilitas bcpatau impor data massal dengan menggunakan BULK INSERT atau OPENROWSET(BULK...)di dokumentasi SQL Server, tergantung pada apa yang Anda putuskan di langkah 11.