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 de cambios para dicha instancia de captura. La captura de datos de cambios sólo está disponible en las ediciones Enterprise, Developer y Evaluation de SQL Server 2008.
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. |
Notas
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 a la función fija 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 una función de puerta de enlace para la instancia de captura, la pertenencia a esa función 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 AdventureWorks;
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
Vea también