1.使用T-SQL创建数据库 School
2.查看数据库文件属性
如果我想找到具体的数据库文件去哪里找呢?有个方法,调用系统存储过程 exec sp_helpdb 数据库名
3.数据库文件和文件组
从上面创建的数据库实例中我们可以知道,一个数据库的文件至少有一个数据库主文件和一个事务日志文件,当然也可能是多个。那既然可以是好多个文件,不会是没有上线吧?
其实,最多可以为每个数据库指定32767个文件和32767个文件组。
这里我们通过执行系统存储过程来查看数据库信息
从上图可以看到新建的School数据库文件,发现多增加的数据文件名字后缀是.ndf,而且全部的文件并不是在同一个文件组里,这里引申出来两个名次“数据库文件的类型”和“文件组” 。
a.数据库文件类型,包含三中文件类型,分别是主要数据文件、次要数据文件、事务日志
- 主要数据文件 包含数据库的启动信息,并指向数据库中的其他文件。用户数据和对象可存储在此文件中,也可以存储在次要数据文件中。每个数据库有一个主要数据文件,扩展名是.mdf。
- 次要数据文件 次要数据文件是可选的,由用户定义并存储用户数据。通过将每个文件存放在不同的磁盘驱动器上,次要文件可用于将数据分散到多个磁盘上。另外,如果数据库超过了单个Windows文件的最大大小,可以使用次要数据文件,这样数据库就能继续增长,其扩展名是.ndf。
- 事务日志 事务日志
b.文件组
每个数据库有一个主要文件组。此文件组包含主要数据文件和未放入其他文件组的所有次要文件。可以创建用户定义的文件组,用于将数据文件集合起来,以便于管理、数据分配和放置。
另外,如果在数据库中创建对象时没有指定对象所属的文件组,对象将被分配到默认文件组(PRIMARY)。不管何时,只能将一个文件组指定为默认文件组。默认文件组中的文件必须足够大,能够容纳未分配给其他文件组的所有新对象。
接下来,我们为School新增一个文件组,然后向这个文件组中添加一个次要数据文件。
c.删除数据库文件
例如要删除School中school_third文件组里的school_secondary_third.ndf次要数据文件。
d.管理文件组
上面提到的每个数据库都有一个默认的PRIMARY文件组,这个组是不可被删除的。
那么默认文件组和自定义文件组之间有什么区别呢?
- 默认文件组最大的好处是新创建文件只要不指定文件组,那么文件都放在默认组中。另外,系统表等信息总是放在PRIMARY文件组中,即使它不再是默认文件组。
怎样将新增的文件组设置为默认文件组呢?按下面的步骤
- 新增一个文件组,语法是:alter database 数据库名 add filegroup 文件组名
- 向新建的文件组里新增一个数据文件,具体见上面(如果不为新增的文件组添加文件,第三步执行出错)
- 将新增的文件组设为默认组,语法是:alter database 数据库名 modify filegroup 文件组名 default