如果在指定数据库内存在最早的活动事务和最早的分布式和非分布式复制事务,则显示与之有关的信息。仅当存在活动事务或数据库包含复制信息时,才显示结果。如果没有活动事务,就显示信息性消息。
注意 |
---|
非 SQL Server 发布服务器不支持 DBCC OPENTRAN。 |
A. 返回最早的活动事务
下面的示例获取当前数据库的事务信息。结果可能会有变化。
CREATE TABLE T1(Col1 int, Col2 char(3)); GO BEGIN TRAN INSERT INTO T1 VALUES (101, 'abc'); GO DBCC OPENTRAN; ROLLBACK TRAN; GO DROP TABLE T1; GO
下面是结果集:
Transaction information for database 'master'.
Oldest active transaction:
SPID (server process ID) : 52
UID (user ID) : -1
Name : user_transaction
LSN : (518:1576:1)
Start time : Jun 1 2004 3:30:07:197PM
SID : 0x010500000000000515000000a065cf7e784b9b5fe77c87709e611500
DBCC 执行完毕。如果 DBCC 输出了错误消息,请与系统管理员联系。
注意 |
---|
“UID (user ID)”结果无意义,将在 SQL Server 的未来版本中将其删除。 |
B. 指定 WITH TABLERESULTS 选项
下面的示例将 DBCC OPENTRAN 命令的结果加载到临时表中。
-- Create the temporary table to accept the results. CREATE TABLE #OpenTranStatus ( ActiveTransaction varchar(25), Details sql_variant ) -- Execute the command, putting the results in the table. INSERT INTO #OpenTranStatus EXEC ('DBCC OPENTRAN WITH TABLERESULTS, NO_INFOMSGS'); -- Display the results. SELECT * FROM #OpenTranStatus; GO