ASE的报错信息中,时常出现page number而不出现表名,如下
Error 614, Severity 21, State 1. A row on page 121
was accessed that has an illegal length of 0 in database 'production'.
报错信息提示了数据库为production,page num为121
1.通过sa登陆
2.执行dbcc traceon(3604)
3.执行dbcc page('production',121)
输出如下
Page found in cache default data cache.
BUFFER:
Buffer header for buffer 0x13d6800
page=0x13d7000 bdnew=0x0 bdold=0x0 bhash=0x0 bmass_next=0x0
bmass_prev=0x0 bvirtpg=0 bdbid=0 bkeep=0
bmass_stat=0x0800 bbuf_stat=0x0000 bpageno=121
bxls_pin = 0x00000000 bxls_next = 0x00000000b
bxls_flushseq 0 bxls_pinseq 0
PAGE HEADER:
Page header for page 0x13d7000
pageno=121 nextpg=122 prevpg=120 objid=7 timestamp=0001 0000043f
nextrno=1 level=10 indid=0 freeoff=1 minlen=1
page status bits: 0x8000,0x8,
DBCC execution completed. If DBCC printed error messages, contact
a user with System Administrator (SA) role.
可以看到objid=7,indid=0
4.通过select object_name(7)获取表名称
5.通过indid得到索引名称
1> use database_name
2> go
1> select name
2> from sysindexes
3> where id = objid
4> and indid = indid
5> go
6.dbcc traceoff(3604)