SQL Server 2008 —— 创建和维护数据库

     俗话说,好记性不如烂笔头,好多东西是学了忘,忘了学,很头疼的,所以干脆把这些东西记下来。

     1.使用T-SQL创建数据库 School

    

ExpandedBlockStart.gif
-- 判断数据库是否存在
if  exists ( select  *  from  sys.databases  where  name = N ' School ' )
     drop  database  School
go

-- 创建数据库
create  database  School
on  primary
    (
        name = school_main,                         -- 逻辑名称
        filename = ' d:\school_main.mdf ' ,             -- 主要数据文件的路径及名字
        size = 3MB,                                 -- 初始大小
        maxsize = unlimited,                         -- 最大上限,未指定就是不设定文件上限,直到磁盘满
        filegrowth = 10 %                             -- 增量,可以用%或者xMB,但是不能超过最大上线
    ),
    (
        name = school_secondary_first,
        filename = ' d:\school_secondary_first.ndf ' , -- 次要数据文件的路径及名字
        size = 3MB,
        maxsize = 500MB,
        filegrowth = 10MB
    ),
    filegroup school_two                         -- 一个新的文件组
    (
        name = school_secondary_second,
        filename = ' d:\school_secondary_second.ndf ' , -- 次要数据文件的路径及名字
        size = 3MB,
        maxsize = 500MB,
        filegrowth = 10MB
    )
log  on
    (
        name = school_log,
        filename = ' d:\school_log.ldf ' ,
        size = 3MB,
        maxsize = 300MB,
        filegrowth = 1MB
    )
go
View Code

     2.查看数据库文件属性

     如果我想找到具体的数据库文件去哪里找呢?有个方法,调用系统存储过程 exec sp_helpdb 数据库名

    

ExpandedBlockStart.gif
exec  sp_helpdb school
View Code

     3.数据库文件和文件组

     从上面创建的数据库实例中我们可以知道,一个数据库的文件至少有一个数据库主文件和一个事务日志文件,当然也可能是多个。那既然可以是好多个文件,不会是没有上线吧?

     其实,最多可以为每个数据库指定32767个文件和32767个文件组。

     这里我们通过执行系统存储过程来查看数据库信息

    

     从上图可以看到新建的School数据库文件,发现多增加的数据文件名字后缀是.ndf,而且全部的文件并不是在同一个文件组里,这里引申出来两个名次“数据库文件的类型”和“文件组” 。

     a.数据库文件类型,包含三中文件类型,分别是主要数据文件、次要数据文件、事务日志

  • 主要数据文件    包含数据库的启动信息,并指向数据库中的其他文件。用户数据和对象可存储在此文件中,也可以存储在次要数据文件中。每个数据库有一个主要数据文件,扩展名是.mdf。
  • 次要数据文件    次要数据文件是可选的,由用户定义并存储用户数据。通过将每个文件存放在不同的磁盘驱动器上,次要文件可用于将数据分散到多个磁盘上。另外,如果数据库超过了单个Windows文件的最大大小,可以使用次要数据文件,这样数据库就能继续增长,其扩展名是.ndf。
  • 事务日志         事务日志

     b.文件组

     每个数据库有一个主要文件组。此文件组包含主要数据文件和未放入其他文件组的所有次要文件。可以创建用户定义的文件组,用于将数据文件集合起来,以便于管理、数据分配和放置。

     另外,如果在数据库中创建对象时没有指定对象所属的文件组,对象将被分配到默认文件组(PRIMARY)。不管何时,只能将一个文件组指定为默认文件组。默认文件组中的文件必须足够大,能够容纳未分配给其他文件组的所有新对象。

     接下来,我们为School新增一个文件组,然后向这个文件组中添加一个次要数据文件。

ExpandedBlockStart.gif
use  school
go

-- 向数据库添加新文件组
alter  database  school  add  filegroup school_third
go

-- 向数据库中增加新文件
alter  database  school  add  file
(
    name = school_secondary_third,
    filename = ' e:\school_secondary_third.ndf ' ,
    size = 3MB,
    maxsize = 100MB,
    filegrowth = 10MB
)
     to  filegroup school_third                     -- 指定该文件所在的文件组
go
View Code

     c.删除数据库文件

     例如要删除School中school_third文件组里的school_secondary_third.ndf次要数据文件。

ExpandedBlockStart.gif
use  school
go

alter  database  school remove  file  school_secondary_third    -- 注意哦,file后面跟的是文件的逻辑名称,不是文件名称
go
View Code

     d.管理文件组

     上面提到的每个数据库都有一个默认的PRIMARY文件组,这个组是不可被删除的。

     那么默认文件组和自定义文件组之间有什么区别呢?

  • 默认文件组最大的好处是新创建文件只要不指定文件组,那么文件都放在默认组中。另外,系统表等信息总是放在PRIMARY文件组中,即使它不再是默认文件组。

     怎样将新增的文件组设置为默认文件组呢?按下面的步骤

  1. 新增一个文件组,语法是:alter database 数据库名 add filegroup 文件组名
  2. 向新建的文件组里新增一个数据文件,具体见上面(如果不为新增的文件组添加文件,第三步执行出错)
  3. 将新增的文件组设为默认组,语法是:alter database 数据库名 modify filegroup 文件组名 default
    修改文件组名

转载于:https://www.cnblogs.com/canyue/p/3163362.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值