一个特殊的dbcc命令--意外收获之dbcc tab

揭秘DBCC TAB命令
本文通过一系列测试揭示了SQL Server中鲜为人知的DBCC TAB命令的使用方法及意义,详细解析了该命令如何通过数据库ID和对象ID展示表结构信息。

首先我们来看看这条指令:

 

DBCC HELP ('?') --mssql sp3帮助
GO

 

得到如下结果 :

/*
checkalloc
checkcatalog
checkconstraints
checkdb
checkfilegroup
checkident
checktable
cleantable
concurrencyviolation
dbreindex
dbrepair
dropcleanbuffers
free
freeproccache
help
indexdefrag
inputbuffer
memusage
newalloc
opentran
outputbuffer
perfmon
pintable
proccache
show_statistics
showcontig
shrinkdatabase
shrinkdb
shrinkfile
sqlperf
textall
textalloc
traceoff
traceon
tracestatus
unpintable
updateusage
useroptions
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。

*/

 

大家有没有发现并没有dbcc tab  这个命令,奇怪了, 怎么回事,

再来看另一个命令:

DBCC HELP ('free')
GO
--结果
/*

free dll_name (FREE)
e.g. DBCC xp_sample (FREE)
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
*/

那我们试试这里的tab看看,是不是意外结果 :

DBCC HELP ('tab')
GO
/*
服务器: 消息 8987,级别 16,状态 1,行 1
DBCC 语句 'tab' 没有可用的帮助。
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
*/

结果 还真意外,MSSQL无法解释这个命令,

先后运行Dbcc tab 提示:向 DBCC 语句提供的参数数目不正确。,

再试dbcc tab(1)  仍然提示:向 DBCC 语句提供的参数数目不正确。

再试在Dbcc tab(1,1) 终于有结果 出来了,

 

dbcc tab(1,1)
/*
PageFID PagePID     IAMFID IAMPID      ObjectID    IndexID PageType IndexLevel NextPageFID NextPagePID PrevPageFID PrevPagePID 
------- ----------- ------ ----------- ----------- ------- -------- ---------- ----------- ----------- ----------- ----------- 
1       11          NULL   NULL        1           1       10       0          0           0           0           0
1       8           1      11          1           0       1        0          1           668         0           0
1       12          1      11          1           1       2        0          0           0           0           0
1       365         1      11          1           0       1        0          1           1092        1           1095
1       369         1      11          1           0       1        0          1           671         1           670
1       373         1      11          1           0       1        0          1           670         1           1091
1       394         1      11          1           0       1        0          1           1094        1           669
1       448         1      11          1           0       1        0          1           1093        1           1088
1       452         1      11          1           0       1        0          1           1090        1           1089
1       664         1      11          1           0       1        0          1           1091        1           1090
1       665         1      11          1           0       1        0          1           1088        1           1092
1       666         1      11          1           0       1        0          1           669         1           1093
1       667         1      11          1           0       1        0          1           1089        1           1094
1       668         1      11          1           0       1        0          1           1095        1           8
1       669         1      11          1           0       1        0          1           394         1           666
1       670         1      11          1           0       1        0          1           369         1           373
1       671         1      11          1           0       1        0          0           0           1           369
1       1088        1      11          1           0       1        0          1           448         1           665
1       1089        1      11          1           0       1        0          1           452         1           667
1       1090        1      11          1           0       1        0          1           664         1           452
1       1091        1      11          1           0       1        0          1           373         1           664
1       1092        1      11          1           0       1        0          1           665         1           365
1       1093        1      11          1           0       1        0          1           666         1           448
1       1094        1      11          1           0       1        0          1           667         1           394
1       1095        1      11          1           0       1        0          1           365         1           668
1       1338        NULL   NULL        1           2       10       0          0           0           0           0
1       38          1      1338        1           2       2        0          1           1345        1           1344
1       259         1      1338        1           2       2        0          1           1353        1           1352
1       1344        1      1338        1           2       2        0          1           38          0           0
1       1345        1      1338        1           2       2        0          1           1347        1           38
1       1346        1      1338        1           2       2        1          0           0           0           0
1       1347        1      1338        1           2       2        0          1           1348        1           1345
1       1348        1      1338        1           2       2        0          1           1349        1           1347
1       1349        1      1338        1           2       2        0          1           1350        1           1348
1       1350        1      1338        1           2       2        0          1           1351        1           1349
1       1351        1      1338        1           2       2        0          1           1352        1           1350
1       1352        1      1338        1           2       2        0          1           259         1           1351
1       1353        1      1338        1           2       2        0          0           0           1           259
1       1340        NULL   NULL        1           3       10       0          0           0           0           0
1       1339        1      1340        1           3       2        0          1           37          0           0
1       1341        1      1340        1           3       2        0          1           310         1           37
1       1342        1      1340        1           3       2        1          0           0           0           0
1       1343        1      1340        1           3       2        0          0           0           1           310
1       37          1      1340        1           3       2        0          1           1341        1           1339
1       310         1      1340        1           3       2        0          1           1343        1           1341

(所影响的行数为 45 行)

DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
*/

中间有二列:objectid,IndexID,

难道是表的ID,

再测试

 

select object_id('sysobjects'),object_id('syscolumns'),object_id('sysdatabases'),object_id('xp_cmdshell')
/*
----------- ----------- ----------- ----------- 
1           3           30          927342368

(所影响的行数为 1 行)


*/

有点门道了吧,估计前是就是dbid了吧

测试:

 

select db_id('master'),db_id('tempdb'),db_id('pubs')
/*
------ ------ ------ 
1      2      5

(所影响的行数为 1 行)



*/

 

到此我们来解释一下这个命令吧

 

--语法:
DBCC TAB (dbid,objectid,outtype)

--参数:
   dbid --数据库ID
   object_id --对象ID
   outtype --输入出类型:猜想的,因为我试了好没有效果,只输出一种缺省的效果

好,我们来测试一下:

 

select object_id('sysobjects')

select db_id('csdn_test')
/*
            
----------- 
1

(所影响的行数为 1 行)

       
------ 
8

(所影响的行数为 1 行)
*/

DBCC TAB(8,10 )   --DBCC
/*
PageFID PagePID     IAMFID IAMPID      ObjectID    IndexID PageType IndexLevel NextPageFID NextPagePID PrevPageFID PrevPagePID 
------- ----------- ------ ----------- ----------- ------- -------- ---------- ----------- ----------- ----------- ----------- 
1       10          NULL   NULL        1           1       10       0          0           0           0           0
1       8           1      10          1           0       1        0          1           165         0           0
1       11          1      10          1           1       2        0          0           0           0           0
1       165         1      10          1           0       1        0          3           71          1           8
1       536         1      10          1           0       1        0          0           0           3           71
3       71          1      10          1           0       1        0          1           536         1           165
1       76          NULL   NULL        1           2       10       0          0           0           0           0
1       75          1      76          1           2       2        1          0           0           0           0
1       523         1      76          1           2       2        0          1           525         0           0
1       525         1      76          1           2       2        0          0           0           1           523
1       78          NULL   NULL        1           3       10       0          0           0           0           0
1       77          1      78          1           3       2        0          0           0           0           0

(所影响的行数为 12 行)

DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
*/




 

嘿嘿,知道这个命令的意义了吧!

其实这仅是一次误操作带来的意外结果

好啦,今天的课就到儿了,明天见!!!

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值