视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
使用DBCCCHECKPRIMARYFILE查询Detach数据库信息
2020-11-09 10:15:23 责编:小采
文档


在论坛碰到有人问到无法Attach数据库的问题,错误信息为:Msg5171,Level16,State1,Line2path\\allen_log.ldfisnotaprimarydatabasefile.很明显这个错误表示Attch

在论坛碰到有人问到无法Attach数据库的问题,错误信息为:

很明显这个错误表示Attch数据库选择的文件不是主数据库文件,但是看附加的数据文件确实是MDF结尾的。问用户是否有多个MDF文件,用户说是,但是他确定选择的文件肯定是主数据文件,不会有错。他认为数据库文件是损坏了,我很确信这个错误是因为选择的主数据文件不对。

用Profiler Trace抓了一下,网站空间,看到后台执行下面的语句:

declare @command nvarchar(300)

valuesql_variantNULL)

insert #smoPrimaryFileProp exec(@command)

里边使用了'dbcc checkprimaryfile,美国服务器,从网上查了一下这个DBCC命令可以查询Detach的数据库主数据文件信息,有四个选项可以使用:

0)

GO

1)

GO

2)

GO

3)

结果如下:

0表示文件是不是MDF文件

1最详细可以查询数据库文件大小增长文件ID

2显示数据库名称,内部版本号已经排序规则

3是1的缩减版结果

使用DBCC checkprimaryfile查询刚才附件的文件就报了上面的错误,所以确信这个MDF文件错误了,使用其他文件就可以正确附加。

其实解决这个问题没必要这么麻烦,几个MDF文件试一次就可以了。但是知道了这个命令,虚拟主机,以后想查询Detach数据库信息了,就非常容易了。

另外有一个好的命名习惯是很重要的,不要将所有的辅助文件也命名为MDF,应该为NDF或者自己制定规则。

本文出自 “关注SQL Server技术” 博客,请务必保留此出处

下载本文
显示全文
专题