Share via


sys.sp_cdc_get_ddl_history (Transact-SQL)

Devuelve el historial del lenguaje de definición de datos (DDL, Data Definition Language) asociado con la instancia de captura especificada desde que se habilitó la captura de datos modificados para dicha instancia de captura. La captura de datos modificados solo está disponible en las ediciones Enterprise, Developer y Evaluation de SQL Server 2008.

Icono de vínculo a temasConvenciones de sintaxis de Transact-SQL

Sintaxis

sys.sp_cdc_get_ddl_history [ @capture_instance = ] 'capture_instance'

Argumentos

  • [ @capture_instance = ] 'capture_instance'
    Es el nombre de la instancia de captura asociada con una tabla de origen. capture_instance es de tipo sysname y no puede ser NULL.

Valores de código de retorno

0 (correcto) o 1 (error)

Conjuntos de resultados

Nombre de columna

Tipo de datos

Descripción

source_schema

sysname

Nombre del esquema de la tabla de origen.

source_table

sysname

Nombre de la tabla de origen.

capture_instance

sysname

Nombre de la instancia de captura.

required_column_update

bit

Indica que para cambiar el DDL ha sido necesario modificar una columna de la tabla de cambios para reflejar que se cambiado un tipo de datos en la columna de origen.

ddl_command

nvarchar(max)

Instrucción DDL aplicada a la tabla de origen.

ddl_lsn

binary(10)

Número de secuencia de registro (LSN) asociado con el cambio de DDL.

ddl_time

datetime

Hora asociada al cambio de DDL.

Comentarios

Las modificaciones del DDL realizadas en la tabla de origen que cambian la estructura de las columnas, como agregar o soltar una columna, o cambiar el tipo de datos de una columna existente, se mantienen en la tabla cdc.ddl_history. Se puede crear un informe de estos cambios usando este procedimiento almacenado. Las entradas en cdc.ddl_history se realizan cuando el proceso de captura lee la transacción de DDL en el registro.

Permisos

Requiere la pertenencia al rol fijo de base de datos db_owner para devolver filas para todas las instancias de captura de la base de datos. Para el resto de usuarios, requiere el permiso SELECT en todas las columnas capturadas en la tabla de origen y, si se ha definido un rol de acceso para la instancia de captura, la pertenencia a ese rol de base de datos.

Ejemplos

En el ejemplo siguiente se agrega una columna a la tabla de origen HumanResources.Employee y luego se ejecuta el procedimiento almacenado sys.sp_cdc_get_ddl_history para informar sobre los cambios del DDL que se aplican a la tabla de origen asociada con la instancia de captura 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