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 edizioni di SQL Server, vedere Edizioni e funzionalità supportate di SQL Server 2022.

Convenzioni di 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 in caratteri della colonna se questa è basata su caratteri. In caso contrario il valore è NULL.
numeric_precision tinyint Precisione della colonna se questa è basata su valori numerici. In caso contrario il valore è NULL.
numeric_precision_radix smallint Radice di precisione della colonna se questa è basata su valori numerici. In caso contrario il valore è NULL.
numeric_scale int Scala della colonna se questa è basata su valori numerici. In caso contrario il valore è NULL.
datetime_precision smallint Precisione della colonna se questa è basata su valori datetime. In caso contrario il valore è 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'appartenenza 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