Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
SQL Server Native Client 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 Klien Asli SQL Server, lihat Dukungan Kolom Jarang (ODBC) dan Dukungan Kolom Jarang (OLE DB).
Untuk informasi tentang aplikasi sampel yang menunjukkan fitur ini, lihat Sampel Pemrograman Data SQL Server.
Skenario Pengguna untuk Kolom Jarang dan Klien Asli SQL Server
Tabel berikut ini meringkas skenario pengguna umum untuk pengguna SQL Server Native Client dengan kolom jarang:
| Skenario | Perilaku |
|---|---|
| pilih * dari tabel atau IOpenRowset::OpenRowset. | Mengembalikan semua kolom yang bukan anggota sparse column_set, ditambah kolom XML yang berisi nilai semua kolom non-null yang merupakan anggota dari sparse column_set. |
| Mereferensikan kolom menurut nama. | Kolom dapat dirujuk terlepas dari status kolom atau column_set keanggotaannya yang jarang. |
Mengakses column_set kolom anggota melalui kolom XML komputasi. |
Kolom yang merupakan anggota jarang column_set dapat diakses dengan memilih column_set berdasarkan nama dan bisa memiliki nilai yang disisipkan dan diperbarui dengan memperbarui XML di column_set kolom.Nilai harus sesuai dengan skema untuk column_set kolom. |
| Ambil metadata untuk semua kolom dalam tabel melalui SQLColumns dengan pola pencarian kolom NULL atau '%' (ODBC); atau melalui kumpulan baris skema DBSCHEMA_COLUMNS tanpa batasan kolom (OLE DB). | Mengembalikan baris untuk semua kolom yang bukan anggota column_set. Jika tabel memiliki sparse column_set, 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. |
Atur bidang deskriptor SQL_SOPT_SS_NAME_SCOPE ke SQL_SS_NAME_SCOPE_EXTENDED dan panggil SQLColumns (ODBC). Panggil IDBSchemaRowset::GetRowset untuk kumpulan baris skema DBSCHEMA_COLUMNS_EXTENDED (OLE DB). Skenario ini tidak dimungkinkan dari aplikasi yang menggunakan SQL Server Native Client dari rilis yang lebih awal dari SQL Server 2008. Namun, aplikasi semacam itu dapat mengkueri tampilan sistem secara langsung. |
Ambil metadata hanya untuk kolom yang merupakan anggota column_set. Ini mungkin mengembalikan jumlah baris yang sangat besar. |
Atur bidang deskriptor SQL_SOPT_SS_NAME_SCOPE ke SQL_SS_NAME_SCOPE_SPARSE_COLUMN_SET dan panggil SQLColumns (ODBC). Panggil IDBSchemaRowset::GetRowset untuk kumpulan baris skema DBSCHEMA_SPARSE_COLUMN_SET (OLE DB). Skenario ini tidak dimungkinkan dari aplikasi yang menggunakan SQL Server Native Client dari rilis yang lebih awal dari SQL Server 2008. Namun, aplikasi semacam itu dapat mengkueri tampilan sistem. |
| Tentukan apakah kolom jarang. | Lihat kolom SS_IS_SPARSE kumpulan hasil SQLColumns (ODBC). Lihat kolom SS_IS_SPARSE dari kumpulan baris skema DBSCHEMA_COLUMNS (OLE DB). Skenario ini tidak dimungkinkan dari aplikasi yang menggunakan SQL Server Native Client dari rilis yang lebih awal dari SQL Server 2008. Namun, aplikasi semacam itu dapat mengkueri tampilan sistem. |
Tentukan apakah kolom adalah column_set. |
Lihat kolom SS_IS_COLUMN_SET dari kumpulan hasil SQLColumns. Atau, lihat atribut kolom tertentu SQL Server SQL_CA_SS_IS_COLUMN_SET (ODBC). 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 column_set kolom, DBCOLUMNFLAGS_SS_ISCOLUMNSET akan diatur (OLE DB).Skenario ini tidak dimungkinkan dari aplikasi yang menggunakan SQL Server Native Client dari rilis yang lebih awal dari SQL Server 2008. Namun, aplikasi semacam itu dapat mengkueri tampilan sistem. |
Impor dan ekspor kolom jarang menurut BCP untuk tabel tanpa column_set. |
Tidak ada perubahan perilaku dari versi SQL Server Native Client sebelumnya. |
Impor dan ekspor kolom jarang menurut BCP untuk tabel dengan column_set. |
column_set diimpor dan diekspor dengan cara yang sama seperti XML; yaitu, seolah-olah varbinary(max) terikat sebagai jenis biner, atau seolah-olah nvarchar(max) terikat sebagai char jenis atau wchar.Kolom yang merupakan anggota jarang column_set tidak diekspor sebagai kolom yang berbeda; kolom tersebut hanya diekspor dalam nilai column_set. |
queryout perilaku untuk BCP. |
Tidak ada perubahan dalam penanganan kolom bernama secara eksplisit dari versi SQL Server Native Client sebelumnya. 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 sparse column_set untuk SQLColumns dan DBSCHMA_COLUMNS. Kumpulan baris skema OLE DB tambahan yang diperkenalkan di Klien Asli SQL Server 2008 tidak akan tersedia, juga tidak akan modifikasi pada SQLColumns di ODBC melalui SQL_SOPT_SS_NAME_SCOPE.
Klien tingkat bawah dapat mengakses kolom yang merupakan anggota dari sparse column_set by name, dan column_set kolom akan dapat diakses sebagai kolom XML ke klien SQL Server 2005.
Dukungan Salinan Massal (BCP) untuk Kolom Sparse
Tidak ada perubahan pada API BCP baik di ODBC atau OLE DB untuk kolom atau column_set fitur jarang.
Jika tabel memiliki column_setkolom 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, seolah-olah varbinary(max) terikat sebagai jenis biner, atau seolah-olah nvarchar(max) terikat sebagai char jenis atau wchar ). Saat mengimpor, column_set nilai harus sesuai dengan skema column_set.
Untuk queryout operasi, tidak ada perubahan pada cara kolom yang dirujuk secara eksplisit ditangani.
column_set kolom memiliki perilaku yang sama dengan kolom XML dan jarang tidak berpengaruh pada penanganan kolom jarang bernama.
Namun, jika queryout 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 column_set kolom anggota dengan metadata ini. Untuk mengimpor column_set kolom anggota satu per satu, Anda harus menentukan tampilan pada tabel yang mereferensikan kolom yang diinginkan column_set , dan Anda harus melakukan operasi impor menggunakan tampilan.