首先我们来看看这条指令:
DBCC
HELP (
'
?
'
) --mssql sp3帮助
GO
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 输出了错误信息,请与系统管理员联系。
*/
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 输出了错误信息,请与系统管理员联系。
*/
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 输出了错误信息,请与系统管理员联系。
*/
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 输出了错误信息,请与系统管理员联系。
*/
/**/ /*
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 行)
*/
/**/ /*
----------- ----------- ----------- -----------
1 3 30 927342368
(所影响的行数为 1 行)
*/
有点门道了吧,估计前是就是dbid了吧
测试:
select
db_id
(
'
master
'
),
db_id
(
'
tempdb
'
),
db_id
(
'
pubs
'
)
/**/ /*
------ ------ ------
1 2 5
(所影响的行数为 1 行)
*/
/**/ /*
------ ------ ------
1 2 5
(所影响的行数为 1 行)
*/
到此我们来解释一下这个命令吧
--
语法:
DBCC TAB (dbid,objectid,outtype)
-- 参数:
dbid -- 数据库ID
object_id -- 对象ID
outtype -- 输入出类型:猜想的,因为我试了好没有效果,只输出一种缺省的效果
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 , 1 , 0 ) -- 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 输出了错误信息,请与系统管理员联系。
*/
select db_id ( ' csdn_test ' )
/**/ /*
-----------
1
(所影响的行数为 1 行)
------
8
(所影响的行数为 1 行)
*/
DBCC TAB( 8 , 1 , 0 ) -- 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 输出了错误信息,请与系统管理员联系。
*/
嘿嘿,知道这个命令的意义了吧!
其实这仅是一次误操作带来的意外结果
好啦,今天的课就到儿了,明天见!!!