Bagikan melalui


Dukungan Kolom Jarang di Driver OLE DB untuk SQL Server

Berlaku untuk: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)

Unduh driver OLE DB

Driver OLE DB untuk SQL Server mendukung kolom jarang. Untuk informasi selengkapnya tentang kolom jarang di SQL Server, lihat Menggunakan Kolom Jarang dan Menggunakan Kumpulan Kolom.

Untuk informasi selengkapnya tentang dukungan kolom jarang di Driver OLE DB untuk SQL Server, Dukungan Kolom Sparse (OLE DB).

Skenario Pengguna untuk Kolom Jarang dan Driver OLE DB untuk SQL Server

Tabel berikut ini meringkas skenario pengguna umum untuk Driver OLE DB untuk pengguna SQL Server dengan kolom jarang:

Skenario Perilaku
pilih * dari tabel atau IOpenRowset::OpenRowset. Mengembalikan semua kolom yang bukan anggota column_set jarang, ditambah kolom XML yang berisi nilai semua kolom non-null yang merupakan anggota column_set jarang.
Mereferensikan kolom menurut nama. Kolom dapat dirujuk terlepas dari status kolom jarang atau keanggotaan column_set .
Akses column_set kolom anggota melalui kolom XML komputasi. Kolom yang merupakan anggota column_set jarang dapat diakses dengan memilih column_set berdasarkan nama dan bisa memiliki nilai yang disisipkan dan diperbarui dengan memperbarui XML di kolom column_set.

Nilai harus sesuai dengan skema untuk kolom column_set .
Ambil metadata untuk semua kolom dalam tabel melalui kumpulan baris skema DBSCHEMA_COLUMNS tanpa batasan kolom (OLE DB). Mengembalikan baris untuk semua kolom yang bukan anggota column_set. Jika tabel memiliki column_set jarang, baris akan dikembalikan untuk tabel tersebut.

Perhatikan bahwa ini tidak mengembalikan metadata untuk kolom yang merupakan anggota column_set.
Ambil metadata untuk semua kolom, terlepas dari jarangnya atau keanggotaan dalam column_set. Ini mungkin mengembalikan jumlah baris yang sangat besar. Panggil IDBSchemaRowset::GetRowset untuk kumpulan baris skema DBSCHEMA_COLUMNS_EXTENDED.
Ambil metadata hanya untuk kolom yang merupakan anggota column_set. Ini mungkin mengembalikan jumlah baris yang sangat besar. Panggil IDBSchemaRowset::GetRowset untuk kumpulan baris skema DBSCHEMA_SPARSE_COLUMN_SET.
Tentukan apakah kolom jarang. Lihat kolom SS_IS_SPARSE dari kumpulan baris skema DBSCHEMA_COLUMNS (OLE DB).
Tentukan apakah kolom adalah column_set. Lihat kolom SS_IS_COLUMN_SET dari kumpulan baris skema DBSCHEMA_COLUMNS. Atau, lihat dwFlags yang dikembalikan oleh IColumnsinfo::GetColumnInfo atau DBCOLUMNFLAGS dalam set baris yang dikembalikan oleh IColumnsRowset::GetColumnsRowset. Untuk kolom column_set , DBCOLUMNFLAGS_SS_ISCOLUMNSET akan diatur.
Impor dan ekspor kolom jarang menurut BCP untuk tabel tanpa column_set. Tidak ada perubahan perilaku dari versi Driver OLE DB sebelumnya untuk SQL Server.
Impor dan ekspor kolom jarang menurut BCP untuk tabel dengan column_set. column_set diimpor dan diekspor dengan cara yang sama seperti XML; yaitu, sebagai varbinary(max) jika terikat sebagai jenis biner, atau sebagai nvarchar(max) jika terikat sebagai jenis karakter atau wchar.

Kolom yang merupakan anggota column_set jarang tidak diekspor sebagai kolom yang berbeda; kolom tersebut hanya diekspor dalam nilai column_set.
perilaku kueri keluar untuk BCP. Tidak ada perubahan dalam penanganan kolom bernama secara eksplisit dari versi Driver OLE DB sebelumnya untuk SQL Server.

Skenario yang melibatkan impor dan ekspor antar tabel dengan skema yang berbeda mungkin memerlukan penanganan khusus.

Untuk informasi selengkapnya tentang BCP, lihat Dukungan Salinan Massal (BCP) untuk Kolom Sparse, nanti dalam topik ini.

Perilaku Klien Tingkat Bawah

Klien tingkat bawah akan mengembalikan metadata hanya untuk kolom yang bukan anggota column_set jarang untuk SQLColumns dan DBSCHMA_COLUMNS.

Klien tingkat bawah dapat mengakses kolom yang merupakan anggota column_set jarang berdasarkan nama, dan kolom column_set akan dapat diakses sebagai kolom XML ke klien SQL Server 2005 (9.x).

Dukungan Salinan Massal (BCP) untuk Kolom Sparse

Tidak ada perubahan pada API BCP di OLE DB untuk kolom jarang atau fitur column_set .

Jika tabel memiliki column_set, kolom jarang tidak ditangani sebagai kolom yang berbeda. Nilai semua kolom jarang disertakan dalam nilai column_set, yang diekspor dengan cara yang sama seperti kolom XML; yaitu, sebagai varbinary(maks) jika terikat sebagai jenis biner, atau sebagai nvarchar(maks) jika terikat sebagai jenis karakter atau wchar ). Saat mengimpor, nilai column_set harus sesuai dengan skema column_set.

Untuk operasi kueri, tidak ada perubahan pada cara kolom yang dirujuk secara eksplisit ditangani. column_set kolom memiliki perilaku yang sama dengan kolom dan jarang XML tidak berpengaruh pada penanganan kolom jarang bernama.

Namun, jika kueri digunakan untuk ekspor dan Anda mereferensikan kolom jarang yang merupakan anggota kolom jarang yang diatur berdasarkan nama, Anda tidak dapat melakukan impor langsung ke dalam tabel terstruktur serupa. Ini karena BCP menggunakan metadata yang konsisten dengan operasi pilih * untuk impor dan tidak dapat mencocokkan kolom anggota column_set dengan metadata ini. Untuk mengimpor kolom anggota column_set satu per satu, Anda harus menentukan tampilan pada tabel yang mereferensikan kolom column_set yang diinginkan, dan Anda harus melakukan operasi impor menggunakan tampilan.

Lihat Juga

Driver OLE DB untuk SQL Server