sys.sp_cdc_get_captured_columns (Transact-SQL)
Si applica a: SQL Server
Restituisce le informazioni sui metadati di Change Data Capture per le colonne di origine acquisite registrate dall'istanza di acquisizione specificata. Change Data Capture non è disponibile in ogni edizione di SQL Server. Per un elenco delle funzionalità supportate dalle varie edizioni di SQL Server, vedere Edizioni e funzionalità supportate di SQL Server 2017.
Convenzioni relative alla sintassi Transact-SQL
Sintassi
sys.sp_cdc_get_captured_columns
[ @capture_instance = ] 'capture_instance'
[ ; ]
Argomenti
[ @capture_instance = ] 'capture_instance'
Nome dell'istanza di acquisizione associata a una tabella di origine. @capture_instance è sysname e non può essere NULL
.
Per creare report sulle istanze di acquisizione per la tabella, eseguire la stored procedure sys.sp_cdc_help_change_data_capture .
Valori del codice restituito
0
(esito positivo) o 1
(errore).
Set di risultati
Nome colonna | Tipo di dati | Descrizione |
---|---|---|
source_schema |
sysname | Nome dello schema della tabella di origine. |
source_table |
sysname | Nome della tabella di origine. |
capture_instance |
sysname | Nome dell'istanza di acquisizione. |
column_name |
sysname | Nome della colonna di origine acquisita. |
column_id |
int | ID della colonna della tabella di origine. |
column_ordinal |
int | Posizione della colonna all'interno della tabella di origine. |
data_type |
sysname | Tipo di dati della colonna. |
character_maximum_length |
int | Lunghezza massima del carattere della colonna basata su caratteri; in caso contrario, NULL . |
numeric_precision |
tinyint | Precisione della colonna se in base numerica; in caso contrario, NULL . |
numeric_precision_radix |
smallint | Radix di precisione della colonna se in base numerica; in caso contrario, NULL . |
numeric_scale |
int | Scala della colonna se in base numerica; in caso contrario, NULL . |
datetime_precision |
smallint | Precisione della colonna se basata su datetime; in caso contrario, NULL . |
Osservazioni:
Usare sys.sp_cdc_get_captured_columns
per ottenere informazioni sulle colonne acquisite restituite eseguendo una query sulle funzioni di query dell'istanza di acquisizione cdc.fn_cdc_get_all_changes_<capture_instance> o cdc.fn_cdc_get_net_changes_<capture_instance>. I nomi di colonna, gli ID e la posizione rimangono costanti per tutta la durata dell'istanza di acquisizione. Solo il tipo di dati delle colonne cambia quando cambia il tipo di dati delle colonne di origine sottostanti nella tabella registrata. Le colonne aggiunte o eliminate da una tabella di origine non hanno alcun effetto sulle colonne acquisite delle istanze di acquisizione esistenti.
Usare sys.sp_cdc_get_ddl_history per ottenere informazioni sulle istruzioni DDL (Data Definition Language) applicate a una tabella di origine. Le modifiche DDL che influiscono sulla struttura di una colonna di origine registrata vengono restituite nel set di risultati.
Autorizzazioni
Richiede l'adesione al ruolo predefinito del database db_owner. Per tutti gli altri utenti, è richiesta l'autorizzazione SELECT su tutte le colonne acquisite nella tabella di origine e, se è stato definito un ruolo di controllo per l'istanza di acquisizione, l'appartenenza a tale ruolo del database. Quando il chiamante non dispone dell'autorizzazione per visualizzare i dati di origine, la funzione restituisce l'errore 22981 (Object doesn't exist or access is denied.
).
Esempi
Nell'esempio seguente sono restituite le informazioni sulle colonne acquisite nell'istanza di acquisizione HumanResources_Employee
.
USE AdventureWorks2022;
GO
EXECUTE sys.sp_cdc_get_captured_columns
@capture_instance = N'HumanResources_Employee';
GO