SHOW TRANSACTIONS¶
列出所有正在运行的事务。该命令可用于显示当前用户或账户中所有用户的事务。
- 另请参阅:
语法¶
SHOW TRANSACTIONS [ IN ACCOUNT ]
参数¶
IN ACCOUNT
显示账户中所有用户的所有事务。它只能由具有 ACCOUNTADMIN 角色(即账户管理员)的用户使用。
输出¶
命令输出显示以下列中的事务元数据:
列 |
描述 |
---|---|
|
事务 ID(一个有符号的 64 位整数)。 |
|
当前用户。 |
|
会话 ID。 |
|
用于事务的用户定义的名称或系统生成的名称 (UUID)。 |
|
指定事务开始执行时间的时间戳。 |
|
事务状态: |
|
在范围内事务中创建存储过程的操作 ID。对于非范围内事务,为 |
使用说明¶
以前缀
is_
开头的列返回Y
(yes) 或N
(no)。该命令不需要正在运行的仓库即可执行。
该命令 最多 返回指定对象类型的 1 万条记录,由用于执行命令的角色的访问权限决定;即使应用了筛选器,也不会返回任何超过 1 万条限制的记录。
要查看存在超过 1 万条记录的结果,请在 Snowflake Information Schema 中查询相应的视图(如果存在)。
若要对此命令的输出进行后处理,可以使用 RESULT_SCAN 函数,该函数会将输出视为可查询的表。
命令输出包括所有运行事务的 IDs。这些 IDs 可以用作 SYSTEM$ABORT_TRANSACTION 的输入,以中止指定的事务。
包含一个事务的存储过程可以从另一个事务中调用。这些事务是独立的,但具有“范围”。
scope
列中的值对于发现两个事务是否在同一范围内非常有用。有关更多信息,请参阅 范围内事务。
示例¶
在此示例中,同一个用户正在运行两个会话,每个会话都有一个正在进行的事务。
SHOW TRANSACTIONS;
+---------------------+---------+-----------------+--------------------------------------+-------------------------------+---------+-------+
| 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 |
+---------------------+---------+-----------------+--------------------------------------+-------------------------------+---------+-------+