Bagikan melalui


sys.sp_cdc_get_ddl_history (T-SQL)

Berlaku untuk: SQL Server

Mengembalikan riwayat perubahan bahasa definisi data (DDL) yang terkait dengan instans pengambilan yang ditentukan karena pengambilan data perubahan diaktifkan untuk instans pengambilan tersebut. Mengubah pengambilan data tidak tersedia di setiap edisi SQL Server. Untuk daftar fitur yang didukung oleh edisi SQL Server, lihat Edisi dan fitur yang didukung SQL Server 2022.

Konvensi sintaks transact-SQL

Sintaks

sys.sp_cdc_get_ddl_history [ @capture_instance = ] 'capture_instance'
[ ; ]

Argumen

[ @capture_instance = ] 'capture_instance'

Nama instans pengambilan yang terkait dengan tabel sumber. @capture_instance adalah sysname dan tidak boleh NULL.

Mengembalikan nilai kode

0 (berhasil) atau 1 (kegagalan).

Tataan hasil

Nama kolom Jenis data Deskripsi
source_schema nama sysname Nama skema tabel sumber.
source_table nama sysname Nama tabel sumber.
capture_instance nama sysname Nama instans pengambilan.
required_column_update bit Menunjukkan perubahan DDL yang memerlukan kolom dalam tabel perubahan yang akan diubah untuk mencerminkan perubahan tipe data yang dilakukan pada kolom sumber.
ddl_command nvarchar(maks) Pernyataan DDL diterapkan ke tabel sumber.
ddl_lsn biner(10) Nomor urutan log (LSN) yang terkait dengan perubahan DDL.
ddl_time datetime Waktu yang terkait dengan perubahan DDL.

Keterangan

Modifikasi DDL pada tabel sumber yang mengubah struktur kolom tabel sumber, seperti menambahkan atau menghilangkan kolom, atau mengubah tipe data kolom yang ada, dipertahankan dalam tabel cdc.ddl_history . Perubahan ini dapat dilaporkan dengan menggunakan prosedur tersimpan ini. Entri masuk cdc.ddl_history dibuat pada saat proses pengambilan membaca transaksi DDL dalam log.

Izin

Memerlukan keanggotaan dalam peran database tetap db_owner untuk mengembalikan baris untuk semua instans pengambilan dalam database. 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.

Contoh

Contoh berikut menambahkan kolom ke tabel HumanResources.Employee sumber lalu menjalankan prosedur tersimpan untuk melaporkan perubahan DDL yang berlaku untuk tabel sumber yang terkait dengan instans sys.sp_cdc_get_ddl_history HumanResources_Employeepengambilan .

USE AdventureWorks2022;
GO

ALTER TABLE HumanResources.Employee
ADD Test_Column INT NULL;
GO

-- Pause 10 seconds to allow the event to be logged.
WAITFOR DELAY '00:00:10';
GO

EXECUTE sys.sp_cdc_get_ddl_history
    @capture_instance = 'HumanResources_Employee';
GO