Bagikan melalui


Model Objek Beban Massal XML SQL Server (SQLXML 4.0)

Berlaku untuk: SQL ServerAzure SQL Database

Model objek Beban Massal XML Microsoft SQL Server terdiri dari objek SQLXMLBulkLoad. Objek ini mendukung metode dan properti berikut.

Metode

Jalankan
Memuat data secara massal dengan menggunakan file skema dan file data (atau aliran) yang disediakan sebagai parameter.

Properti

Beban Massal
Menentukan apakah Beban Massal harus dilakukan. Properti ini berguna jika Anda hanya ingin menghasilkan skema (lihat properti SchemaGen, SGDropTables, dan SGUseID yang mengikuti) dan tidak melakukan pemuatan massal. Ini adalah properti Boolean. Saat properti diatur ke TRUE, Beban Massal XML dijalankan. Ketika diatur ke FALSE, Beban Massal XML tidak dijalankan.

Nilai defaultnya adalah TRUE.

CheckConstraints
Menentukan apakah batasan (seperti batasan karena hubungan kunci primer/kunci asing di antara kolom) yang ditentukan pada kolom harus diperiksa saat Beban Massal XML menyisipkan data ke dalam kolom. Ini adalah properti Boolean.

Saat properti diatur ke TRUE, Beban Massal XML memeriksa batasan untuk setiap nilai yang disisipkan (yang berarti bahwa pelanggaran batasan menghasilkan kesalahan).

Catatan

Untuk meninggalkan properti ini sebagai FALSE, Anda harus memiliki izin ALTER TABLE pada tabel target. Untuk informasi selengkapnya, lihat ALTER TABLE (Transact-SQL).

Nilai defaultnya adalah FALSE. Ketika diatur ke FALSE, Beban Massal XML mengabaikan batasan selama operasi penyisipan. Dalam implementasi saat ini, Anda harus menentukan tabel dalam urutan kunci primer dan hubungan kunci asing dalam skema pemetaan. Artinya, tabel dengan kunci primer harus ditentukan sebelum tabel yang sesuai dengan kunci asing; jika tidak, Pemuatan Massal XML gagal.

Perhatikan bahwa jika Penyebaran ID sedang dilakukan, maka opsi ini tidak berlaku dan pemeriksaan batasan akan dibiarkan. Ini terjadi ketika KeepIdentity=False dan ada hubungan yang ditentukan di mana induk adalah bidang identitas dan nilai diberikan kepada anak seperti yang dihasilkan.

ConnectionCommand
Mengidentifikasi objek koneksi yang ada (misalnya, objek perintah ADO atau ICommand) yang harus digunakan beban massal XML. Anda dapat menggunakan properti ConnectionCommand alih-alih menentukan string koneksi dengan properti ConnectionString. Properti Transaksi harus diatur ke TRUE jika Anda menggunakan ConnectionCommand.

Jika Anda menggunakan properti ConnectionString dan ConnectionCommand, Beban Massal XML menggunakan properti terakhir yang ditentukan.

Nilai defaultnya adalah NULL.

ConnectionString
Mengidentifikasi string koneksi OLE DB yang menyediakan informasi yang diperlukan untuk membuat koneksi ke instans database. Jika Anda menggunakan properti ConnectionString dan ConnectionCommand, Beban Massal XML menggunakan properti terakhir yang ditentukan.

Nilai defaultnya adalah NULL.

ErrorLogFile
Menentukan nama file tempat kesalahan dan pesan log Pemuatan Massal XML. Defaultnya adalah string kosong, dalam hal ini tidak ada pengelogan yang terjadi.

FireTriggers
Menentukan apakah pemicu yang ditentukan pada tabel target harus diaktifkan selama operasi Pemuatan Massal. Defaultnya adalah FALSE.

Ketika diatur ke TRUE, pemicu akan diaktifkan sesuai normal selama operasi penyisipan.

Catatan

Untuk meninggalkan properti ini sebagai FALSE, Anda harus memiliki izin ALTER TABLE pada tabel target. Untuk informasi selengkapnya, lihat ALTER TABLE (Transact-SQL).

Perhatikan bahwa jika Penyebaran ID sedang dilakukan, maka opsi ini tidak berlaku dan pemicu akan dibiarkan aktif. Ini terjadi ketika KeepIdentity=False dan ada hubungan yang ditentukan di mana induk adalah bidang identitas dan nilai diberikan kepada anak seperti yang dihasilkan.

ForceTableLock
Menentukan apakah tabel tempat data Salinan Beban Massal XML harus dikunci selama Durasi Pemuatan Massal. Ini adalah properti Boolean. Saat properti diatur ke TRUE, Beban Massal XML memperoleh kunci tabel selama durasi Beban Massal. Saat diatur ke FALSE, Beban Massal XML memperoleh kunci tabel setiap kali menyisipkan rekaman ke dalam tabel.

Nilai defaultnya adalah FALSE.

IgnoreDuplicateKeys
Menentukan apa yang harus dilakukan jika upaya dilakukan untuk menyisipkan nilai duplikat dalam kolom kunci. Jika properti ini diatur ke TRUE dan upaya dilakukan untuk menyisipkan rekaman dengan nilai duplikat di kolom kunci, SQL Server tidak menyisipkan rekaman tersebut. Tetapi memasukkan catatan berikutnya; dengan demikian, operasi Pemuatan Massal tidak gagal. Jika properti ini diatur ke FALSE, Pemuatan Massal gagal saat upaya dilakukan untuk menyisipkan nilai duplikat di kolom kunci.

Saat properti IgnoreDuplicateKeys diatur ke TRUE, pernyataan COMMIT dikeluarkan untuk setiap rekaman yang disisipkan dalam tabel. Ini memperlambat performa. Properti dapat diatur ke TRUE hanya ketika properti Transaksi diatur ke FALSE, karena perilaku transaksi diimplementasikan menggunakan file.

Nilai defaultnya adalah FALSE.

KeepIdentity
Menentukan cara menangani nilai untuk kolom Jenis identitas dalam file sumber. Ini adalah properti Boolean. Saat properti diatur ke TRUE, Beban Massal XML menetapkan nilai yang ditentukan dalam file sumber ke kolom identitas. Saat properti diatur ke FALSE, operasi pemuatan massal mengabaikan nilai kolom identitas yang ditentukan dalam sumber. Dalam hal ini, SQL Server menetapkan nilai ke kolom identitas.

Jika Beban Massal melibatkan kolom yang merupakan kunci asing yang mengacu pada kolom identitas tempat nilai yang dihasilkan SQL Server disimpan, Beban Massal dengan tepat menyebarkan nilai identitas ini ke kolom kunci asing.

Nilai properti ini berlaku untuk semua kolom yang terlibat dalam beban massal. Nilai defaultnya adalah TRUE.

Catatan

Untuk membiarkan properti ini sebagai TRUE, Anda harus memiliki izin ALTER TABLE pada tabel target. Jika tidak, itu harus diatur ke nilai FALSE. Untuk informasi selengkapnya, lihat ALTER TABLE (Transact-SQL).

KeepNulls
Menentukan nilai apa yang akan digunakan untuk kolom yang kehilangan atribut atau elemen turunan terkait dalam dokumen XML. Ini adalah properti Boolean. Saat properti diatur ke TRUE, Beban Massal XML menetapkan nilai null ke kolom. Ini tidak menetapkan nilai default kolom, jika ada, seperti yang diatur pada server. Nilai properti ini berlaku untuk semua kolom yang terlibat dalam beban massal.

Nilai defaultnya adalah FALSE.

SkemaGen
Menentukan apakah akan membuat tabel yang diperlukan sebelum melakukan operasi Pemuatan Massal. Ini adalah properti Boolean. Jika properti ini diatur ke TRUE, tabel yang diidentifikasi dalam skema pemetaan dibuat (database harus ada). Jika satu atau beberapa tabel sudah ada dalam database, properti SGDropTables menentukan apakah tabel yang sudah ada ini akan dihilangkan dan dibuat ulang.

Nilai default untuk properti SchemaGen adalah FALSE. SkemaGen tidak membuat batasan KUNCI PRIMER pada tabel yang baru dibuat. Namun, SkemaGen membuat batasan KUNCI ASING dalam database jika dapat menemukan anotasi sql:relationship dan sql:key-fields yang cocok dalam skema pemetaan dan jika bidang kunci terdiri dari satu kolom.

Perhatikan bahwa jika Anda mengatur properti SchemaGen ke TRUE, Pemuatan Massal XML melakukan hal berikut:

  • Membuat tabel yang diperlukan dari elemen dan nama atribut. Oleh karena itu, penting bagi Anda untuk tidak menggunakan kata-kata cadangan SQL Server untuk elemen dan nama atribut dalam skema.

  • Mengembalikan data luapan untuk kolom apa pun yang ditunjuk menggunakan bidang sql:overflow dalam format tipe data xml.

SGDropTables
Menentukan apakah tabel yang ada harus dihilangkan dan dibuat ulang. Anda menggunakan properti ini ketika properti SchemaGen diatur ke TRUE. Jika SGDropTables FALSE, tabel yang ada akan dipertahankan. Ketika properti ini TRUE, tabel yang ada akan dihapus dan dibuat ulang.

Nilai defaultnya adalah FALSE.

SGUseID
Menentukan apakah atribut dalam skema pemetaan yang diidentifikasi sebagai jenis id dapat digunakan dalam membuat batasan KUNCI PRIMER saat tabel dibuat. Gunakan properti ini ketika properti SchemaGen diatur ke TRUE. Jika SGUseID TRUE, utilitas SchemaGen menggunakan atribut yang dt:type="id" ditentukan sebagai kolom kunci utama dan menambahkan batasan KUNCI PRIMER yang sesuai saat membuat tabel.

Nilai defaultnya adalah FALSE.

TempFilePath
Menentukan jalur file tempat Beban Massal XML membuat file sementara untuk pemuatan massal yang ditransaksikan. (Properti ini hanya berguna ketika properti Transaksi diatur ke TRUE.) Anda harus memastikan bahwa akun SQL Server yang digunakan untuk Beban Massal XML memiliki akses ke jalur ini. Jika properti ini tidak diatur, Beban Massal XML menyimpan file sementara di lokasi yang ditentukan dalam variabel lingkungan TEMP.

Transaksi
Menentukan apakah Beban Massal harus dilakukan sebagai transaksi, dalam hal ini pembatalan dijamin jika Beban Massal gagal. Ini adalah properti Boolean. Jika properti diatur ke TRUE, Beban Massal terjadi dalam konteks transaksi. Properti TempFilePath hanya berguna ketika Transaksi diatur ke TRUE.

Catatan

Jika Anda memuat data biner (seperti bin.hex, jenis data XML bin.base64 ke jenis data biner, gambar SQL Server), properti Transaksi harus diatur ke FALSE.

Nilai defaultnya adalah FALSE.

XMLFragment
Menentukan apakah data sumber adalah fragmen XML. Fragmen XML adalah dokumen XML tanpa elemen tingkat atas (root) tunggal. Ini adalah properti Boolean. Properti ini harus diatur ke TRUE jika file sumber terdiri dari fragmen XML.

Nilai defaultnya adalah FALSE.