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