Aracılığıyla paylaş


sys.sp_cdc_get_ddl_history (Transact-SQL)

Veri yakalama değişiklik için yakalama örnek etkinleştirildikten sonra belirtilen yakalama örneğiyle ilişkili veri tanımlama dili (DDL) değişiklik tarihçesini döndürür.Veri yakalama değişikliği yalnızca kullanılabilir SQL Server 2008 Enterprise Developer ve değerlendirme sürümleri.

Topic link iconTransact-SQL sözdizimi kuralları

sys.sp_cdc_get_ddl_history [ @capture_instance = ] 'capture_instance'

Bağımsız değişkenler

  • [capture_instance =] ' capture_instance'
    Is the name of the capture instance associated with a source table.capture_instance is sysname and cannot be NULL.

Dönüş Kodu Değerleri

0 (başarılı) veya 1 (hata)

Sonuç Kümeleri

sütun Name

Veri türü

Açıklama

source_schema

sysname

Kaynak tablo şema adı.

source_table

sysname

Kaynak tablo adı.

capture_instance

sysname

Yakalama örneğinin adı.

required_column_update

bit

Bir sütunda değişiklik DDL değişikliği gerekli gösterir tablo kaynak sütuna yapılan veri türü değişikliği yansıtacak biçimde değiştirilecek.

ddl_command

nvarchar(max)

Kaynak tabloya uygulanmış DDL ekstresi.

ddl_lsn

binary(10)

DDL değiştirme ile ilgili günlük sıra numarası (SSN).

ddl_time

datetime

DDL değişiklikle ilişkili saat.

Remarks

Kaynak tablo sütun ekleme veya bir sütuna bırakarak veya varolan bir sütunun veri türünü değiştirme gibi yapısını, değişen DDL değişiklikler kaynak tablo olarak sürdürülür cdc.ddl_history tablosudur.Bu değişiklikler bu saklı yordam kullanarak raporlanabilir.Yakalama işlemi DDL hareket günlüğüne okur saat cdc.ddl_history girişler oluşur.

İzinler

Tüm yakalama örnekleri için satır veritabanında dönmek db_owner sabit veritabanı rolü üyeliği gerekir.Diğer tüm kullanıcılar için Kaynak tablosundaki yakalanan tüm sütunlarda SELECT izni gerektirir ve gating role yakalama örnek için tanımlanmışsa, rol üyeliği, veritabanı.

Örnekler

Aşağıdaki örnek kaynak tablosuna bir sütun ekler HumanResources.Employee ve ardından sys.sp_cdc_get_ddl_history saklı yordam, geçerli yakalama örneğiyle ilişkili kaynak tablo DDL değişiklikleri bildirmek için HumanResources_Employee.

USE AdventureWorks;
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