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.
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
See Also