有关MSSQLSERVER数据库的问题:书上说主要数据文件只能有一个,但是为什么在数据文件里可以有多个扩展名为MDF的文件啊?
       ( 在新建数据库后会自带一个扩展名为MDF的文件,但是在添加数据文件时也还可以添加一个扩展名为MDF的数据文件,请专家解释下,谢谢)

解决方案 »

  1.   

    一个MDF
    一个LDF
    多个NDF
      

  2.   

    在SQL2005和SQL2008中,,,如果需要使用分区表,,,就必须建立多个数据文件(MDF)来存放,,
    存放的准则是不同的数据文件,放在不同的硬盘上,以提高IO的读写速度。
      

  3.   

    通常情况
    一个MDF 
    一个LDF 特殊情况
    一个MDF 
    多个LDF 
    多个NDF
    有三种类型的文件用来存储数据库: 主文件包含数据库的启动信息。主文件还可以用来存储数据。每个数据库都包含一个主文件。
    次要文件保存所有主要数据文件中容纳不下的数据。如果主文件大到足以容纳数据库中的所有数据,就不需要有次要数据文件。而另一些数据库可能非常大,需要多个次要数据文件,也可能使用多个独立磁盘驱动器上的次要文件,以将数据分布在多个磁盘上。
    事务日志文件保存用来恢复数据库的日志信息。每个数据库必须至少有一个事务日志文件(尽管可以有多个)。事务日志文件最小为 512 KB。 
    每个数据库至少有两个文件,一个主文件和一个事务日志文件。尽管 'os_file_name' 可以是任何有效的操作系统文件名,但如果使用以下建议的扩展名,则可以更加清楚地反映文件的用途。文件类型 文件扩展名 
    主要数据文件 .mdf 
    次要数据文件 .ndf 
    事务日志文件 .ldf 
      

  4.   

    mdf,ndf和ldf主要是用来更清楚表示哪个物理文件是主,次数据文件及日志文件,如果你不用这些扩展名,或用别的扩展名一样可以创建数据库,这些讲到主要文件是一个,次要的可有一个或多个,日志也可以多个我想应该是从文件物理结构来区分的,而不是从扩展名上
      

  5.   

    其实我就是不明白为什么一个数据库中可以有多个扩展名为MDF的数据文件,书上讲了主要数据文件只能有有一个的啊,麻烦大家再解释解释。
      

  6.   

    尽信书则不如无书,书上说的一个应该就是指建立数据库最早的那个mdf文件。
      

  7.   

    书上只提到了mdf,ndf,ldf,没提到别的扩展名,那是不是别的扩展名就不能创建呢?当然不是(不用扩展名都能创建),这三个扩展名只是让用户用"肉眼"好区分哪是主,哪是次,哪是日志,真正的主,次,日志文件,可以从sysfiles中用fileid来区分,1是"mdf",2是第一个"ldf"再往下就是"ndf","ndf"之后又是"ldf",至于用什么扩展名就不要计较了
      

  8.   

    楼主应该把主数据文件和mdf文件区分开来理解,主数据文件只能有一个,主数据文件可以用mdf扩展来标识,也可以不用它来标识,只不过mdf是默认的主数据文件扩展名罢了,同理ndf,ldf亦如此]
    create database test
    on primary
    (
      name=t1,
      filename='d:\t1'
    ),
    (
      name=t2,
      filename='d:\t2.mdf'
    )
    log on
    (
      name=t3,
      filename='d:\t3.ldf'
    )看看这个例子,t1是实际的mdf,t2的实际上应是ndf,但扩展名就可以随意
      

  9.   


    CREATE DATABASE [DBTEST] ON  PRIMARY 
    ( NAME = N'DBTEST_data1', FILENAME = N'G:\SQLdb\DBTEST1.mdf'), 
    ( NAME = N'DBTEST_data2', FILENAME = N'G:\SQLdb\DBTEST2.mdf')
     LOG ON 
    ( NAME = N'DBTEST_log1', FILENAME = N'G:\SQLdb\DBTEST_log1.ldf'), 
    ( NAME = N'DBTEST_log2', FILENAME = N'G:\SQLdb\DBTEST_log2.ldf')
      

  10.   

    书上也没错,楼主理解有误。
    一个数据库可以有多个实例,你本机安装了SQL2000,可以新建数据库A,数据库B,数据库C,分别来管理,而对应的也会存在A.MDF、B.MDF、C.MDF。
    好比一个果盘里只能放一种水果即苹果,但可以放多个苹果。
      

  11.   

    应该是楼主理解有误,每个库只能有一个,但是有多个库啊,那不就有多个MDF。
    你装的数据库,是数据库系统,包含多个库文件。