SHOW TRANSACTIONS

Liste toutes les transactions en cours d’exécution. La commande peut être utilisée pour afficher les transactions de l’utilisateur actuel ou de tous les utilisateurs du compte.

Voir aussi :

SHOW LOCKS

Syntaxe

SHOW TRANSACTIONS [ IN ACCOUNT ]
Copy

Paramètres

IN ACCOUNT

Affiche toutes les transactions de tous les utilisateurs du compte. Il ne peut être utilisé que par les utilisateurs ayant le rôle ACCOUNTADMIN (c’est-à-dire les administrateurs de comptes).

Sortie

La sortie de la commande affiche les métadonnées de transaction dans les colonnes suivantes :

Colonne

Description

id

ID de transaction (un entier signé 64 bits).

user

Utilisateur actuel.

session

ID de session.

name

Nom défini par l’utilisateur ou nom généré par le système (UUID) pour la transaction.

started_on

Horodatage spécifiant quand la transaction a commencé à s’exécuter.

state

État de la transaction : running.

scope

ID de l’opération qui a créé une procédure stockée dans une transaction limitée. 0 pour les transactions non scopées.

Notes sur l’utilisation

  • La sortie de commande inclut les IDs de toutes les transactions en cours. Ces IDs peuvent être utilisés comme entrée pour SYSTEM$ABORT_TRANSACTION afin d’annuler une transaction spécifiée.

  • Une procédure stockée qui contient une transaction peut être appelée à partir d’une autre transaction. Ces transactions sont distinctes mais « scopées ». Les valeurs dans la colonne scope sont utiles pour découvrir si deux transactions sont dans le même scope. Pour plus d’informations, voir Transactions scopées.

  • La commande ne nécessite pas l’exécution d’un entrepôt en cours d’exécution.

  • La commande ne renvoie que les objets pour lesquels le rôle actuel de l’utilisateur s’est vu accorder au moins un privilège d’accès.

  • Le privilège d’accès MANAGE GRANTS permet implicitement à son titulaire de voir tous les objets du compte. Par défaut, seuls l’administrateur du compte (utilisateurs avec le rôle ACCOUNTADMIN) et l’administrateur de sécurité (utilisateurs avec le rôle SECURITYADMIN) ont le privilège MANAGE GRANTS.

  • Pour post-traiter la sortie de cette commande, vous pouvez utiliser la fonction RESULT_SCAN qui traite la sortie sous forme de table à interroger. Vous pouvez également utiliser l”opérateur de canal pour interroger la sortie de cette commande.

  • La commande renvoie un maximum de dix mille enregistrements pour le type d’objet spécifié, conformément aux privilèges d’accès du rôle utilisé pour exécuter la commande. Aucun enregistrement au-delà de la limite de dix mille enregistrements n’est renvoyé, même si un filtre a été appliqué.

    Pour afficher les résultats pour lesquels il existe plus de dix mille enregistrements, interrogez la vue correspondante (le cas échéant) dans Schéma d’information de Snowflake.

Exemple

Dans cet exemple, deux sessions sont exécutées par le même utilisateur, avec une transaction en cours pour chaque session.

SHOW TRANSACTIONS;
Copy
+---------------------+---------+-----------------+--------------------------------------+-------------------------------+---------+-------+
|                  id | user    |         session | name                                 | started_on                    | state   | scope |
|---------------------+---------+-----------------+--------------------------------------+-------------------------------+---------+-------|
| 1721165674582000000 | CALIBAN | 186457423713330 | 551f494d-90ed-438d-b32b-1161396c3a22 | 2024-07-16 14:34:34.582 -0700 | running |     0 |
| 1721165584820000000 | CALIBAN | 186457423749354 | a092aa44-9a0a-4955-9659-123b35c0efeb | 2024-07-16 14:33:04.820 -0700 | running |     0 |
+---------------------+---------+-----------------+--------------------------------------+-------------------------------+---------+-------+