- IF EXISTS (SELECT * FROM sys.objects WHERE type='U' AND name='DBCC_PAGE_RESULT')
- DROP TABLE DBCC_PAGE_RESULT;
- GO
- CREATE TABLE DBCC_PAGE_RESULT
- (
- [ParentObject] NVARCHAR(200),
- [Object] NVARCHAR(2000),
- [Field] NVARCHAR(4000),
- [Value] NVARCHAR(MAX)
- )GO
- CREATE PROCEDURE PRC_DBCC_PAGE
- (
- @dbid INT,
- @filenum INT,
- @pagenum INT
- )AS
- DBCC PAGE(@dbid, @filenum, @pagenum, 3) WITH TABLERESULTS;
- GO DBCC TRACEON(3604)
- ;WITH t AS ( SELECT Object ,
- Field ,
- Value ,
- CASE WHEN CHARINDEX('Column', Object)> 0
- THEN CHARINDEX('Column', Object)
- ELSE CHARINDEX('Offset', Object)
- END AS substring_len
- FROM dbo.DBCC_PAGE_RESULT dp
- WHERE Object LIKE 'Slot%Column%'
- OR Field = 'KeyHashValue'
- ),
- tt
- AS ( SELECT Object ,
- Field ,
- Value ,
- CAST(SUBSTRING(Object, LEN('Slot') + 1,
- substring_len - LEN('Slot') - 1) AS INT) AS row
- FROM t
- ),
- ttt
- AS ( SELECT Object ,
- Field ,
- Value ,
row , -- 第几行
- MAX(CASE WHEN Field = 'KeyHashValue' THEN Value
- ELSE ''
- END) OVER ( PARTITION BY row ) AS KeyHashValue
- FROM tt
- )
- SELECT *
- FROM ttt
- WHERE ttt.row = 0
来源: http://www.bubuko.com/infodetail-2712161.html