sys.sp_cdc_get_captured_columns (Transact-SQL)
Se aplica a: SQL Server
Devuelve la información de los metadatos de captura de datos de cambio para las columnas de origen de las que la instancia de captura especificada ha realizado un seguimiento. 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_captured_columns
[ @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
.
Para informar sobre las instancias de captura de la tabla, ejecute el procedimiento almacenado sys.sp_cdc_help_change_data_capture .
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. |
column_name |
sysname | Nombre de la columna de origen capturada. |
column_id |
int | Id. de la columna en la tabla de origen. |
column_ordinal |
int | Posición de la columna dentro de la tabla de origen. |
data_type |
sysname | Tipo de datos de la columna. |
character_maximum_length |
int | Longitud máxima de caracteres de la columna basada en caracteres; de lo contrario, NULL . |
numeric_precision |
tinyint | Precisión de la columna si se basa en valores numéricos; de lo contrario, NULL . |
numeric_precision_radix |
smallint | Radix de precisión de la columna si se basa en valores numéricos; de lo contrario, NULL . |
numeric_scale |
int | Escala de la columna si se basa en valores numéricos; de lo contrario, NULL . |
datetime_precision |
smallint | Precisión de la columna si se basa en datetime; de lo contrario, NULL . |
Comentarios
Use sys.sp_cdc_get_captured_columns
para obtener información de columna sobre las columnas capturadas devueltas consultando las funciones de consulta de instancia de captura cdc.fn_cdc_get_all_changes_<capture_instance> o cdc.fn_cdc_get_net_changes_<capture_instance>. Los nombres de columna, Id. y posición siguen siendo constantes para la duración de la instancia de captura. Solo el tipo de datos de columna cambia cuando el tipo de datos de la columna de origen subyacente en la tabla de la que se ha realizado un seguimiento cambia. Las columnas que se agregan o quitan de una tabla de origen no tienen ningún efecto en las columnas capturadas de las instancias de captura existentes.
Use sys.sp_cdc_get_ddl_history para obtener información sobre las instrucciones del lenguaje de definición de datos (DDL) aplicadas a una tabla de origen. Cualquier cambio de DDL que ha modificado la estructura de una columna de origen de la que se ha realizado un seguimiento se devuelve en el conjunto de resultados.
Permisos
Requiere pertenencia al rol fijo de base de datos db_owner. 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. Cuando el autor de la llamada no tiene permiso para ver los datos de origen, la función devuelve el error 22981 (Object doesn't exist or access is denied.
).
Ejemplos
El siguiente ejemplo devuelve información acerca de las columnas capturadas en la instancia de captura HumanResources_Employee
.
USE AdventureWorks2022;
GO
EXECUTE sys.sp_cdc_get_captured_columns
@capture_instance = N'HumanResources_Employee';
GO