SHOW TRANSACTIONS

列出所有正在运行的事务。该命令可用于显示当前用户或账户中所有用户的事务。

另请参阅:

SHOW LOCKS

语法

SHOW TRANSACTIONS [ IN ACCOUNT ]
Copy

参数

IN ACCOUNT

显示账户中所有用户的所有事务。它只能由具有 ACCOUNTADMIN 角色(即账户管理员)的用户使用。

输出

命令输出显示以下列中的事务元数据:

描述

id

事务 ID(一个有符号的 64 位整数)。

user

当前用户。

session

会话 ID。

name

用于事务的用户定义的名称或系统生成的名称 (UUID)。

started_on

指定事务开始执行时间的时间戳。

state

事务状态:running

scope

在范围内事务中创建存储过程的操作 ID。对于非范围内事务,为 0

使用说明

  • 以前缀 is_ 开头的列返回 Y (yes) 或 N (no)。

  • 该命令不需要正在运行的仓库即可执行。

  • 该命令 最多 返回指定对象类型的 1 万条记录,由用于执行命令的角色的访问权限决定;即使应用了筛选器,也不会返回任何超过 1 万条限制的记录。

    要查看存在超过 1 万条记录的结果,请在 Snowflake Information Schema 中查询相应的视图(如果存在)。

  • 若要对此命令的输出进行后处理,可以使用 RESULT_SCAN 函数,该函数会将输出视为可查询的表。

  • 命令输出包括所有运行事务的 IDs。这些 IDs 可以用作 SYSTEM$ABORT_TRANSACTION 的输入,以中止指定的事务。

  • 包含一个事务的存储过程可以从另一个事务中调用。这些事务是独立的,但具有“范围”。scope 列中的值对于发现两个事务是否在同一范围内非常有用。有关更多信息,请参阅 范围内事务

示例

在此示例中,同一个用户正在运行两个会话,每个会话都有一个正在进行的事务。

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 |
+---------------------+---------+-----------------+--------------------------------------+-------------------------------+---------+-------+
语言: 中文