Bagikan melalui


sys.fn_cdc_has_column_changed (T-SQL)

Berlaku untuk: SQL Server

Mengidentifikasi apakah masker pembaruan yang ditentukan menunjukkan bahwa kolom yang ditentukan telah diperbarui di baris perubahan terkait.

Konvensi sintaks transact-SQL

Sintaks

  
sys.fn_cdc_has_column_changed ( 'capture_instance','column_name' , update_mask )  

Argumen

' capture_instance '
Adalah nama instans pengambilan. capture_instance adalah sysname.

' column_name '
Adalah kolom yang diambil dari instans pengambilan yang ditentukan untuk dilaporkan. column_name adalah sysname.

update_mask
Apakah masker mengidentifikasi kolom yang diperbarui di baris perubahan terkait. update_mask adalah varbinary(128).

Jenis Hasil

bit

Keterangan

Anda bisa menggunakan fungsi ini untuk mengekstrak informasi dari masker pembaruan yang dikembalikan dalam kueri untuk mengubah data. Ini paling berguna dalam pasca-pemrosesan masker pembaruan ketika Anda perlu mengetahui apakah kolom tertentu di baris perubahan terkait telah dimodifikasi. Untuk informasi selengkapnya, lihat Tentang Mengubah Penangkapan Data (SQL Server).

Ketika informasi ini akan dikembalikan sebagai bagian dari kueri data perubahan, kami sarankan Anda menggunakan fungsi sys.fn_cdc_get_column_ordinal dan sys.fn_cdc_is_bit_set alih-alih fungsi ini. Gunakan fungsi fn_cdc_get_column_ordinal sebelum mengkueri untuk mengubah data sehingga ordinal kolom yang diinginkan hanya dihitung sekali. Gunakan fn_cdc_is_bit_set dalam kueri untuk mengekstrak informasi dari masker pembaruan untuk setiap baris yang dikembalikan.

Izin

Memerlukan keanggotaan dalam peran server tetap sysadmin atau peran database tetap db_owner. Untuk semua pengguna lain, memerlukan izin SELECT pada semua kolom yang diambil dalam tabel sumber dan, jika peran pembatasan untuk instans pengambilan ditentukan, keanggotaan dalam peran database tersebut.

Lihat Juga

CDC.<>capture_instance_CT (T-SQL)
cdc.captured_columns (T-SQL)