sys.sp_cdc_get_ddl_history (Transact-SQL)

Se aplica a:SQL Server

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 de cambio para dicha instancia de captura. La captura de datos modificados no está disponible en todas las ediciones de SQL Server. Para obtener una lista de las características admitidas por las ediciones de SQL Server, consulte Ediciones y características admitidas de SQL Server 2022.

Convenciones de sintaxis de Transact-SQL

Sintaxis

sys.sp_cdc_get_ddl_history [ @capture_instance = ] 'capture_instance'
[ ; ]

Argumentos

[ @capture_instance = ] 'capture_instance'

Nombre de la instancia de captura asociada a una tabla de origen. @capture_instance es sysname y no puede ser NULL.

Valores de código de retorno

0 (correcto) o 1 (erróneo).

Conjunto de resultados

Nombre de la 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 archivo 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 de DDL en la tabla de origen que cambian la estructura de columnas de la tabla de origen, como agregar o quitar una columna, o cambiar el tipo de datos de una columna existente, se mantienen en la tabla de cdc.ddl_history . Se puede crear un informe de estos cambios usando este procedimiento almacenado. Las entradas de se realizan en el momento en cdc.ddl_history que el proceso de captura lee la transacción 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 AdventureWorks2022;
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