<sys.fn_all_changes_capture_instance> (Transact-SQL)
S'applique à : SQL Server
Wrappers pour toutes les fonctions de requête modifiées . Les scripts requis pour créer ces fonctions sont générés par la sys.sp_cdc_generate_wrapper_function
procédure stockée. Pour plus d’informations sur la procédure stockée utilisée pour créersys.fn_all_changes_<capture_instance>
, consultez sys.sp_cdc_generate_wrapper_function (Transact-SQL).
Conventions de la syntaxe Transact-SQL
Syntaxe
fn_all_changes_<capture_instance> ('start_time' ,'end_time', '<row_filter_option>' )
<capture_instance> ::= The name of the capture instance.
<row_filter_option> ::=
{ all
| all update old
}
Arguments
heure-début
Valeur datetime qui représente le point de terminaison faible de la plage d’entrées de table de modification à inclure dans le jeu de résultats.
Seules les lignes de la cdc.<capture_instance>_CT
table de modifications qui ont une durée de validation associée supérieure à start_time sont incluses dans le jeu de résultats.
Si une valeur NULL est fournie pour cet argument, le point de terminaison inférieur de la plage de requêtes correspond au point de terminaison inférieur de la plage valide pour l'instance de capture.
Si la valeur du paramètre @start_time ou @end_time dépasse l’heure du LSN le plus bas ou du LSN le plus élevé, l’exécution des fonctions wrapper générées entraînera l’erreur 313 : Msg 313, Level 16, State 3, Line 1 An insufficient number of arguments were supplied for the procedure or function
. Cette erreur doit être gérée par le développeur.
heure-fin
Valeur datetime qui représente le point de terminaison élevé de la plage d’entrées de table de modification à inclure dans le jeu de résultats.
Ce paramètre peut prendre l’une des deux significations possibles en fonction de la valeur choisie pour @closed_high_end_point quand sys.sp_cdc_generate_wrapper_function
elle est appelée pour générer le script de création pour la fonction wrapper :
@closed_high_end_point = 1
Seules les lignes de la
cdc.<capture_instance>_CT
table de modifications qui ont une durée de validation associée inférieure ou égale à end_time sont incluses dans le jeu de résultats.@closed_high_end_point = 0
Seules les lignes de la
cdc.capture_instance_CT
table de modifications qui ont une durée de validation associée sont strictement inférieures à end_time sont incluses dans le jeu de résultats.
Si une valeur NULL est fournie pour cet argument, le point de terminaison supérieur de la plage de requêtes correspond au point de terminaison supérieur de la plage valide pour l'instance de capture.
Si la valeur du paramètre @start_time ou @end_time dépasse l’heure du LSN le plus bas ou du LSN le plus élevé, l’exécution des fonctions wrapper générées entraînera l’erreur 313 : Msg 313, Level 16, State 3, Line 1 An insufficient number of arguments were supplied for the procedure or function
. Cette erreur doit être gérée par le développeur.
<> row_filter_option ::= { all | all update old }
Option qui régit le contenu des colonnes de métadonnées ainsi que les lignes retournées dans le jeu de résultats.
Il peut s'agir de l'une des options suivantes :
all
Retourne toutes les modifications dans la plage spécifiée de numéro séquentiel dans le journal. Pour les modifications résultantes d'une opération de mise à jour, cette option retourne seulement la ligne qui contient les nouvelles valeurs après l'application de la mise à jour.
all update old
Retourne toutes les modifications dans la plage spécifiée de numéro séquentiel dans le journal. Pour les modifications résultantes d'une opération de mise à jour, cette option retourne seulement les deux lignes qui contiennent les valeurs de colonnes avant et après la mise à jour.
Table retournée
Nom de la colonne | Type de colonne | Description |
---|---|---|
__CDC_STARTLSN | binary(10) | Numéro LSN de validation de la transaction associée à la modification. Toutes les modifications validées dans la même transaction partagent le même numéro LSN de validation. |
__CDC_SEQVAL | binary(10) | Valeur de classement utilisée pour classer les modifications de ligne dans une transaction. |
<colonnes à partir de @column_list> | varie | Colonnes identifiées dans l’argument column_list quand sp_cdc_generate_wrapper_function elle est appelée pour générer le script qui crée la fonction wrapper. |
__CDC_OPERATION | nvarchar(2) | Code d'opération qui indique l'opération requise pour appliquer la ligne à l'environnement cible. Il varie en fonction de la valeur de l’argument row_filter_option fourni dans l’appel : row_filter_option = 'all' 'D' - opération de suppression 'I' - opération d'insertion 'UN' – opération de mise à jour (nouvelles valeurs) row_filter_option = 'all update old' 'D' - opération de suppression 'I' - opération d'insertion 'UN' – opération de mise à jour (nouvelles valeurs) 'UO' – opération de mise à jour (anciennes valeurs) |
<colonnes à partir de @update_flag_list> | bit | Un indicateur de bits est nommé en ajoutant _uflag au nom de la colonne. L’indicateur est toujours défini sur NULL lorsque __CDC_OPERATION est « D », « I », de « UO ». Lorsque __CDC_OPERATION est « UN », elle est définie sur 1 si la mise à jour a produit une modification de la colonne correspondante. Sinon, il prend la valeur 0. |
Notes
La fn_all_changes_<capture_instance>
fonction sert de wrapper pour la cdc.fn_cdc_get_all_changes_<capture_instance>
fonction de requête. La sys.sp_cdc_generate_wrapper
procédure stockée est utilisée pour générer le script pour créer le wrapper.
Les fonctions wrapper ne sont pas créées automatiquement. Vous devez effectuer deux opérations pour créer des fonctions wrapper :
Exécuter la procédure stockée pour générer le script pour créer le wrapper.
Exécuter le script pour créer la fonction wrapper.
Les fonctions wrapper permettent aux utilisateurs d’interroger systématiquement les modifications qui se sont produites dans un intervalle limité par les valeurs datetime au lieu des valeurs LSN. Les fonctions wrapper effectuent toutes les conversions requises entre les valeurs datetime fournies et les valeurs LSN nécessaires en interne en tant qu’arguments aux fonctions de requête. Lorsque les fonctions wrapper sont utilisées en série pour traiter un flux de données modifiées, elles garantissent qu’aucune donnée n’est perdue ou répétée, à condition que la convention suivante soit suivie : la @end_time valeur de l’intervalle associé à un appel est fournie comme @start_time valeur pour l’intervalle associé à l’appel suivant.
L'utilisation du paramètre @closed_high_end_point lors de la création du script vous permet de générer des wrappers destinés à prendre en charge une limite supérieure fermée ou une limite supérieure ouverte sur la fenêtre de requête spécifiée. Autrement dit, vous pouvez décider si les entrées qui ont une heure de validation égale à la limite supérieure de l'intervalle d'extraction doivent être incluses dans l'intervalle. Par défaut, la limite supérieure est incluse.
Le jeu de résultats retourné par la fonction wrapper toutes les modifications retourne les colonnes __$start_lsn et __$seqval de la table de modification en tant que colonnes __CDC_STARTLSN et __CDC_SEQVAL, respectivement. Il suit ceux-ci avec uniquement les colonnes suivies qui sont apparues dans le paramètre @column_list lorsque le wrapper a été généré. Si @column_list a la valeur NULL, toutes les colonnes sources suivies sont retournées. Les colonnes sources sont suivies d'une colonne d'opération, __CDC_OPERATION, qui est une colonne à un ou deux caractères qui identifie l'opération.
Les indicateurs de bits sont ensuite rajoutés au jeu de résultats pour chaque colonne identifiée dans le paramètre @update_flag_list. Pour tous les wrapper de modifications , les indicateurs de bits sont toujours NULL si __CDC_OPERATION est « D », « I » ou « UO ». Si __CDC_OPERATION est « UN », l’indicateur est défini sur 1 ou 0, selon que l’opération de mise à jour a provoqué une modification de la colonne.
Le modèle de configuration de capture de données modifiées « Instancier les fichiers TVFs de capture de données modifiées pour le schéma » montre comment utiliser la sp_cdc_generate_wrapper_function
procédure stockée pour obtenir des scripts CREATE pour toutes les fonctions de wrapper pour les fonctions de requête définies d’un schéma. Le modèle crée ensuite ces scripts. Pour plus d’informations sur les modèles, consultez l’Explorateur de modèles.
Les fonctions sys.fn_all_changes_<capture_instance>
wrapper et sys.fn_net_changes_<capture_instance>
dépendent des fonctions cdc.fn_cdc_get_all_changes_<capture_instance>
système et cdc.fn_cdc_get_net_changes_<capture_instance>
. L’erreur 313 est attendue si la plage LSN fournie n’est pas appropriée lors de l’appel cdc.fn_cdc_get_all_changes_<capture_instance>
ou cdc.fn_cdc_get_net_changes_<capture_instance>
. Si le lsn_value
paramètre dépasse le temps du LSN le plus bas ou du LSN le plus élevé, l’exécution de ces fonctions retourne dans l’erreur 313 : Msg 313, Level 16, State 3, Line 1 An insufficient number of arguments were supplied for the procedure or function
. Cette erreur doit être gérée par le développeur.