如何从MS SQL 2008中的数据库ID,文件ID,页面ID获取表名?

Ank*_*ush 4 database sql-server dbcc database-deadlocks

我有死锁图,其中这三个字段的DB ID,文件ID,页面ID提到了锁定的资源.还有一些相关的目标.我想知道的是这个页面属于哪个表.我试过DBCC PAGE(dbid, fileid, pageid) with tableresults但是没有显示任何表名.

知道如何获得这个吗?

更新:还试过SELECT name From sys.indexes WHERE object_id = 123 and Index_id = 456 这里123是m_objid(下一个ObjectId),456是m_indexid(下一个IndexId)我得到的DBCC Page命令输出.我得到的只是NULL.

Ed *_*per 9

要从中获取结果,DBCC PAGE必须启用traceflag 3604,否则结果将转到SQL Server日志:

dbcc traceon (3604)
Run Code Online (Sandbox Code Playgroud)

然后尝试命令

dbcc page ( dbid, filenum, pagenum , 3)
Run Code Online (Sandbox Code Playgroud)

第四个参数是printopt:

printopt参数具有以下含义:

0 - print just the page header
1 - page header plus per-row hex dumps and a dump of the page slot array 
    (unless it's a page that doesn't > have one, like allocation bitmaps)
2 - page header plus whole page hex dump
3 - page header plus detailed per-row interpretation
Run Code Online (Sandbox Code Playgroud)

这里定义