Menyiapkan data untuk ekspor atau impor massal

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics AnalyticsPlatform System (PDW)

Bagian ini membahas pertimbangan yang terlibat dalam perencanaan operasi ekspor massal dan persyaratan untuk operasi impor massal.

Catatan

Jika Anda tidak yakin tentang cara memformat file data untuk impor massal, gunakan utilitas bcp untuk mengekspor data dari tabel ke dalam file data. Pemformatan setiap bidang data dalam file ini memperlihatkan pemformatan yang diperlukan untuk mengimpor data secara massal ke dalam kolom tabel yang sesuai. Gunakan pemformatan data yang sama untuk bidang file data Anda.

Pertimbangan format file data untuk ekspor massal

Sebelum Anda melakukan operasi ekspor massal dengan menggunakan perintah bcp , pertimbangkan hal berikut:

  • Saat data diekspor ke file, perintah bcp membuat file data secara otomatis dengan menggunakan nama file yang ditentukan. Jika nama file tersebut sudah digunakan, data yang sedang disalin secara massal ke file data akan menimpa konten file yang ada.

  • Ekspor massal dari tabel atau tampilan ke file data memerlukan SELECT izin pada tabel atau tampilan yang sedang disalin secara massal.

  • SQL Server dapat menggunakan pemindaian paralel untuk mengambil data. Oleh karena itu, baris tabel yang diekspor secara massal dari instans SQL Server biasanya tidak dijamin berada dalam urutan tertentu dalam file data. Untuk membuat baris tabel yang diekspor massal muncul dalam urutan tertentu dalam file data, gunakan opsi kueri untuk mengekspor massal dari kueri, dan tentukan ORDER BY klausa.

Persyaratan format file data untuk impor massal

Untuk mengimpor data dari file data, file harus memenuhi persyaratan dasar berikut:

  • Data harus dalam format baris dan kolom.

Catatan

Struktur file data tidak perlu identik dengan struktur tabel SQL Server karena kolom dapat dilewati atau diurutkan ulang selama proses impor massal.

  • Data dalam file data harus dalam format yang didukung seperti karakter atau format asli.

  • Data dapat dalam format biner karakter atau asli termasuk Unicode.

  • Untuk mengimpor data dengan menggunakan perintah, pernyataan, BULK INSERT atau INSERT ... SELECT * FROM OPENROWSET(BULK...) pernyataan bcp, tabel tujuan harus sudah ada.

  • Setiap bidang dalam file data harus kompatibel dengan kolom terkait dalam tabel target. Misalnya, bidang int tidak dapat dimuat ke dalam kolom datetime . Untuk informasi selengkapnya, lihat Format data untuk impor massal atau ekspor massal (SQL Server) dan Tentukan format data kompatibilitas saat menggunakan bcp (SQL Server).

    Catatan

    Untuk menentukan subset baris yang akan diimpor dari file data daripada seluruh file, Anda dapat menggunakan perintah bcp dengan -F <first_row> sakelar dan/atau -L <last_row> sakelar. Untuk informasi selengkapnya, lihat Utilitas bcp.

  • Untuk mengimpor data dari file data dengan bidang panjang tetap atau lebar tetap, gunakan file format. Untuk informasi selengkapnya, lihat File Format XML (SQL Server).

  • Dimulai dengan SQL Server 2017 (14.x), file CSV dapat digunakan sebagai file data untuk impor data massal ke SQL Server. Terminator bidang file CSV tidak harus koma. Agar dapat digunakan sebagai file data untuk impor massal, file CSV harus mematuhi batasan berikut:

    • Bidang data tidak pernah berisi terminator bidang.

    • Tidak ada atau semua nilai dalam bidang data diapit dalam tanda kutip ("").

      Untuk mengimpor data secara massal dari file tabel Microsoft FoxPro atau Visual FoxPro (.dbf) atau file lembar kerja Microsoft Excel (.xls), Anda perlu mengonversi data menjadi file CSV yang mematuhi pembatasan sebelumnya. Ekstensi file biasanya akan menjadi .csv. Anda kemudian dapat menggunakan .csv file sebagai file data dalam operasi impor massal SQL Server.

      Pada sistem 32-bit (SQL Server 2014 (12.x) dan versi sebelumnya), Anda dapat mengimpor data CSV ke dalam tabel SQL Server tanpa pengoptimalan impor massal dengan menggunakan OPENROWSET dengan Penyedia OLE DB untuk Jet. Jet memperlakukan file teks sebagai tabel, dengan skema yang schema.ini ditentukan oleh file yang terletak di direktori yang sama dengan sumber data. Untuk data CSV, salah satu parameter dalam schema.ini file adalah "FORMAT=CSVDelimited". Untuk menggunakan solusi ini, Anda perlu memahami bagaimana Jet Text IISAM beroperasi (sintaks string koneksi, schema.ini penggunaan, opsi pengaturan registri, dan sebagainya.) Sumber terbaik dari informasi ini adalah artikel Bantuan Akses Microsoft dan Pangkalan Pengetahuan (KB). Untuk informasi selengkapnya, lihat Menginisialisasi Driver Sumber Data Teks, Cara Menggunakan Kueri Terdistribusi SQL Server 7.0 dengan Server Tertaut ke Database Akses Aman, CARA: Menggunakan Penyedia Jet OLE DB 4.0 untuk Koneksi ke Database ISAM, dan Cara Membuka File Teks Berbatas Menggunakan IIsam Teks Penyedia Jet.

Selain itu, impor data massal dari file data ke dalam tabel memiliki persyaratan berikut:

  • Pengguna harus memiliki INSERT izin dan SELECT pada tabel. Pengguna juga memerlukan ALTER TABLE izin saat mereka menggunakan opsi yang memerlukan operasi bahasa definisi data (DDL), seperti menonaktifkan batasan.

  • Saat Anda mengimpor data secara massal dengan menggunakan BULK INSERT atau INSERT ... SELECT * FROM OPENROWSET(BULK...), file data harus dapat diakses untuk operasi baca dengan profil keamanan proses SQL Server (jika pengguna masuk menggunakan SQL Server yang disediakan login) atau oleh login Microsoft Windows yang digunakan di bawah keamanan yang didelegasikan. Selain itu, pengguna harus memiliki ADMINISTER BULK OPERATIONS izin untuk membaca file.

Catatan

Mengimpor secara massal ke tampilan yang dipartisi tidak didukung, dan upaya untuk mengimpor data secara massal ke tampilan yang dipartisi gagal.