sys.sp_cdc_get_ddl_history (Transact-SQL)
Değişiklik veri yakalama için örnekyakaladığınız etkinleştirildikten sonra belirtilen yakalama örnek ile ilişkilendirilmiş veri tanımı dili (DDL) değişiklik geçmiş döndürür.Değişiklik veri yakalama yalnızca SQL Server 2008 kuruluş, Developer ve değerlendirme sürümleri.
Sözdizimi
sys.sp_cdc_get_ddl_history [ @capture_instance = ] 'capture_instance'
Bağımsız değişkenler
- [ @ capture_instance = ] 'capture_instance'
kaynaktabloile ilişkili yakalama örnek adıdır. capture_instanceİş sysname ve olamaz null.
Dönüş Kodu Değerleri
0 (başarılı) veya 1 (hata)
Sonuç Kümeleri
Sütun adı |
Veri türü |
Açıklama |
---|---|---|
source_schema |
sysname |
kaynaktablo şema adı. |
source_table |
sysname |
kaynaktabloadı. |
capture_instance |
sysname |
Yakalama örnekadı. |
required_column_update |
bit |
kaynaksütunyapılan veri türü değişikliği yansıtacak biçimde değiştirilmesi için değişiklik tablo sütun DDL değişikliği gerekli gösterir. |
ddl_command |
nvarchar(max) |
kaynaktablouygulanan DDLdeyim . |
ddl_lsn |
binary(10) |
DDL değişikliği ile ilişkili günlük sıra numarası (SSN). |
ddl_time |
datetime |
DDL değişikliği ile ilişkili zaman. |
Açıklamalar
Ekleme veya bir sütunbırakarak veya bir varolan sütunveri türünü değiştirme gibi kaynaktablosütun yapısını değiştirenDDL değişiklikleri kaynaktablo içinde tutulan cdc.ddl_historytablo. Bu değişiklikler, bu saklı yordamkullanılarak bildirilebilir.Girişleri cdc.ddl_history saat yakalama yapılan işlem DDL hareket günlüğünü okur
İzinler
Üyelik gerektiren db_owner veritabanı rolü sabit satır veritabanında tüm yakalama örnekleri için geri dönmek içinDiğer tüm kullanıcılar için kaynak tablo yakalanan tüm sütunların select izni gerektirir ve yakalama örnek gating rol tanımlanmışsa, bu veritabanı rolüüyeliği.
Örnekler
Aşağıdaki örnek, kaynaktablo sütun eklerHumanResources.Employee ve sonra çalışır sys.sp_cdc_get_ddl_historysaklı yordam yakalama örnekilişkili kaynaktablo uygulanan DDL değişiklikleri bildirmek için HumanResources_Employee.
USE AdventureWorks2008R2;
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
Ayrıca bkz.