Aracılığıyla paylaş


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.

Konu bağlantısı simgesiTransact-SQL sözdizimi kuralları

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