278.sqlserver2008数据库操作

  • 时间:
  • 浏览:4

1.1基本模式

1.1.1 逻辑数据库

  用户几条劲能不都里能在T-SQL中引用SQL Server对象并对其进行操作,如对数据库表进行查询和数据更新等,在其所使用的T-SQL一段话中能不都里能给出对象的名称。用户能不都里能给出这名对象名,即全部限定名和次要限定名。



(1)全部限定名。在SQL Server 4008中,全部限定名是对象的全名,

包括几条 多次要:服务器名数据库名数据库架构名对象名

其格式为          server.database.scheme.object

在SQL Server 4008上创建的每几条 多对象都能不都里能几条 多多唯一的全部限定名。

(2)次要限定名。在使用T-SQL编程时,常省略全名中的其他次要,对象全名的几条 多次要中的前几条次要均能不都里能省略,当省略底下的次要时,圆点符“.”不可省略。把只蕴藏对象全部限定名中的一次要的对象名称为次要限定名。SQL Server能不都里能根据系统的当前工作环境选着对象名称中省略的次要。

在次要限定名中,未指出的次要使用以下默认值。

服务器:默认为本地服务器。

数据库:默认为当前数据库。

数据库架构名:默认为dbo。

同类,以下是其他正确的对象次要限定名:
server.database..object          /*省略架构名*/
server.. scheme.object            /*省略数据库名*/
database. scheme.object          /*省略服务器名*/
server…object                    /*省略架构名和数据库名*/
scheme.object                     /*省略服务器名和数据库名*/
object                           /*省略服务器名、数据库名和架构名*/

  下面大致介绍一下SQL Server 4008中所蕴藏的常用数据库对象。

1 表:表是SQL Server中最主要的数据库对象,它是用来存储和操作数据的这名逻辑社会形态。表由行和列组成,日后 也称为二维表。表是在日常工作和中活中几条劲使用的这名表示数据及其关系的形式。



2 视图:视图是从几条 多或多个基本表中引出的表。数据库中只存放视图的定义而不存放视图对应的数据,哪些地方地方数据仍存倒进导出视图的基本表中。

日后 视图这名我不要 说存储实际数据,日后 不都里能不都里能称之为虚表。视图中的数据来自定义视图的查询所引用的基本表,并在引用时动态生成数据。当基本表中的数据位于变化时,从视图中查询出来的数据也随之改变。视图一经定义,就能不都里能像基本表一样被查询、修改、删除和更新了。

3 索引:索引是这名我不要 扫描整个数据表就能不都里能对表中的数据实现快速访问的途径,它是对数据表中的一列日后 多列数据进行排序的这名社会形态。

表中的记录通常按其输入的时间顺序存放,这名 顺序称为记录的物理顺序。为了实现对表记录的快速查询,能不都里能对表的记录按某个或其他属性进行排序,这名 顺序称为逻辑顺序

索引是根据索引表达式的值进行逻辑排序的一组指针,它能不都里能实现对数据的快速访问,索引是关系数据库的內部实现技术,它被存倒进存储文件中。

4 约束:约束机制保障了SQL Server 4008中数据的一致性与全部性,具有代表性的约束日后 主键和外键。主键约束当前表记录的唯一性,外键约束当前表记录与其他表的关系。



5 存储过程:存储过程是一组为了完成特定功能的SQL一段话集合(功能函数)。这名 一段话集合经过编译后存储在数据库中,存储过程具有接受参数、输出参数、返回单个或多个结果以及返回值的功能。存储过程独立于表位于(表不位于,存储过程位于,日后 会出错)。存储过程有与函数同类的地方,但它又不同于函数,同类,它不返回取代其名称的值,日后 能直接在表达式中使用。

① 触发器:触发器与表紧密关联。它能不都里能实现更加僵化 的数据操作,更加有效地保障数据库系统中数据的全部性和一致性。触发器基于几条 多表创建,但能不都里能对多个表进行操作。(学生学号改,住宿表,学费表都改的实现)



②默认值:默认值是在用户没法给出具体数据时,系统所自动生成的数值。它是SQL Server 4008系统确保数据一致性和全部性的土办法。

③ 用户和角色:用户是指对数据库有存取权限的使用者;角色是指一组数据库用户的集合。这名 个 多概念同类于Windows XP的本地用户和组的概念。



④ 规则:规则用来限制表字段的数据范围。



⑤ 类型:用户能不都里能根据能不都里能在给定的系统类型之上定义买车人的数据类型。



⑥ 函数:用户能不都里能根据能不都里能在SQL Server 4008上定义买车人的函数。

1.1.2  物理数据库

1.页和区

SQL Server 4008中几条 多主要的数据存储单位:页和区。

页是用于数据存储的最基本单位。每个页的大小是8 KB。每页的开头是96 B的标头,用于存储有关页的系统信息。紧接着标头存放的是数据行,数据行按顺序排列。数据库表中的每一行数据算不算能跨页存储,即表中的每一行数据字节数没法超过8192。页的末尾是行偏移表,页中的每一行在偏移表蕴藏无几条 多多对应的条目。每个条目记录着对应行的第几条 多字节与页首部的距离。

区是用于管理空间的基本单位。每8个连接的页组成几条 多区,大小为64 KB,即每1 MB的数据库算不算16个区。区用于控制表和索引的存储。

2.数据库文件

SQL Server 4008所使用的文件包括以下三类文件。

(1)主数据文件。主数据文件简称主文件,正如其名字所示,该文件是数据库的关键文件,蕴藏了数据库的启动信息,日后 存储数据。每个数据库能不都里能有且仅能几条 多多主文件,其默认扩展名为.mdf可直接拷贝

(2)辅助数据文件。辅助数据文件简称辅(助)文件,用于存储未包括在主文件内的其他数据。辅助文件的默认扩展名为.ndf。辅助文件是可选的,根据情况报告报告,能不都里能创建多个辅助文件,不都里能不都里能不使用辅助文件。一般当数据库很大时,有日后 能不都里能创建多个辅助文件。而当数据库较小时,则只能不都里能创建主文件而没法创建辅助文件。

(3)日志文件。日志文件用于保存恢复数据库所需的事务日志信息。每个数据库大约几条 多多日志文件,不都里能不都里能有多个,日志文件的扩展名为.ldf。日志文件的存储与数据文件不同,它蕴藏一系列记录,哪些地方地方记录的存储不以页为存储单位。

3.文件组

使用文件组能不都里能提高表中数据的查询性能。在SQL Server 4008蕴藏两类文件组。

(1)主文件组。主文件组蕴藏主要数据文件和任何没法明确指派给其他文件组的其他文件。管理数据库的系统表的所有页均分配在主文件组中。

(2)用户定义文件组。用户定义文件组是位于CREATE DATABASE或ALTER DATABASE一段话中使用FILEGROUP关键字指定的文件组。

每个数据库蕴藏无几条 多多文件组作为默认文件组运行。若在SQL Server 4008中创建表或索引时没法为其指定文件组,没法将从默认文件组中进行存储页分配、查询等操作。用户能不都里能指定默认文件组,日后 没法指定默认文件组,则主文件组是默认文件组。

2.1  系统数据库和用户数据库

  系统数据库存储有关SQL Server的系统信息,它们是SQL Server 4008管理数据库的土办法。日后 系统数据库遭到破坏,没法SQL Server将没法正常启动。在安装SQL Server 4008时,系统将创建几条 多可见的系统数据库:master、model、msdbtempdb

(1)master数据库蕴藏了SQL Server 4008的登录账号、系统配置、数据库位置及数据库错误信息等,控制用户数据库和SQL Server的运行。

(2)model数据库为新创建的数据库提供模板。

(3)msdb数据库为“SQL Server代理”调度信息和作业记录提供存储空间。

(4)tempdb数据库为临时表和临时存储过程提供存储空间,所有与系统连接的用户的临时表和临时存储过程都存储于该数据库中。

每个系统数据库都蕴藏主数据文件和主日志文件。扩展名分别为.mdf 和.ldf,同类master数据库的几条 多文件分别为master.mdf和master.ldf。

2.2  界面土办法数据库操作

2.2.1 数据库的创建

下面以创建学生成绩管理系统的数据库(名为PXSCJ)为例,说明使用SQL Server Management Studio窗口图形化向导创建数据库的过程。



【例2.1】 创建数据库PXSCJ,数据文件和日志文件的属性按默认值设置。

创建该数据库的主要过程如下。

第1步:以系统管理员身份登录计算机,在桌面上单击“日后 日后日后结束→所有程序→Microsoft SQL Server 4008”,选着并启动SQL Server Management Studio。如图2.1所示,使用默认的系统配置连接到数据库服务器。

 

第2步:选着“对象资源管理器”中服务器目录下的“数据库”目录,右击鼠标,在弹出的快捷菜单中选着“新建数据库”菜单项,打开“新建数据库”窗口。



第3步:“新建数据库”窗口的左底下共几条 多选项卡——“常规”、“选项”和“文件组”,这里只配置“常规”选项卡,其他选项卡使用系统默认设置。

在“新建数据库”窗口的左底下选着“常规”选项卡,在“数据库名称”文本框中填写要创建的数据库名称“PXSCJ”,不都里能不都里能在“所有者”文本框中指定数据库的所有者,如sa。这里使用默认值,其他属性也按默认值设置,如图2.2所示。

 

图2.2 新建数据库属性

另外,能不都里能通过单击自动增长标签栏下面的 ... 按钮,弹出图2.3所示的对话框,在该对话框中能不都里能设置数据库算不算自动增长、增长土办法、数据库文件最大文件大小。数据日志文件的自动增长设置对话框与数据文件的同类。

 

图2.3 自动增长设置

配置路径的土办法与配置自动增长土办法同类,能不都里能通过单击路径标签栏下面的 按钮来自定义路径,默认路径为C:\Program Files\Microsoft SQL Server\MSSQL10.SQL4008 \MSSQL\DATA。这里,数据库文件大小、增长土办法和路径都使用默认值,确认后单击“选着”按钮。

至此数据库PXSCJ日后 创建完成了,此时,能不都里能在对象资源管理器的“数据库”目录下找到该数据库所对应的图标,如图2.4所示。

 

图2.4 创建后的PXSCJ数据库

2.2.2数据库的修改

在数据库成功创建后,数据文件名和日志文件名就没法改变了。对已位于的数据库能不都里能进行的修改包括以下几项。

  • 增加或删除数据文件。
  • 改变数据文件的大小和增长土办法。
  • 改变日志文件的大小和增长土办法。
  • 增加或删除日志文件。
  • 增加或删除文件组。
  • 重命名数据库。

下面以对数据库PXSCJ的修改为例,说明在SQL Server Management Studio中对数据库的定义进行修改的操作土办法。

在进行任何界面操作日后 ,算不算启动SQL Server Management Studio,底下启动SQL Server Management Studio的步骤将被省略,只介绍其主要的操作步骤。

第1步:选着能不都里能进行修改的数据库PXSCJ,右击鼠标,在几条劲出现的快捷菜单中选着“属性”菜单项,如图2.5所示。

 

第2步:选着“属性”菜单项后,几条劲出现如图2.6所示的“数据库属性-PXSCJ”窗口。从图中的选项卡列表中能不都里能看出,它包括9个选项卡。

 

下面全部介绍一下对日后 位于的数据库能不都里能进行的修改操作。

(1)改变数据文件的大小和增长土办法。在图2.6所示的“数据库属性-PXSCJ”窗口中的选项卡列表中选着“文件”,在右边的“初始大小”列中输入要修改的数据库的初始大小,如图2.7所示。

 

(2)增加或删除数据文件。当原有数据库的存储空间过低大时,除了能不都里能采用扩大原有数据文件存储量的土办法之外,还能不都里能增加新的数据文件。日后 ,从系统管理的需求出发,采用多个数据文件来存储数据,以处理数据文件过大。此时,会用到向数据库中增加数据文件的操作。

【例2.2】 在PXSCJ数据库中增加数据文件PXSCJ_2,其属性均取系统默认值。

操作土办法如下:

打开“数据库属性-PXSCJ”窗口,在选项卡列表中选着“文件”,单击窗口右下角的“去掉 ”按钮,数据库文件下方会新增加一行文件项,如图2.8所示。

 

删除辅助数据文件的操作土办法如下。

打开“数据库属性”窗口,选着“文件”选项卡。选中需删除的辅助数据文件PXSCJ_2,单击对话框右下角的“删除”按钮,日后 单击“选着”按钮即完成删除。

(3)增加或删除文件组。数据库管理员(DBA)从系统管理策略强度出发,有时日后 能不都里能增加或删除文件组。这里通过示例说明操作土办法。

【例2.3】 假设要在数据库PXSCJ中增加几条 多名为FGroup的文件组。

操作土办法如下。

打开“数据库属性”窗口,选着“文件组”选项卡。单击右下角的“去掉 ”按钮,这时在PRIMARY行的下面会几条劲出现新的一行。在该行的“名称”列输入“FGroup”,单击“选着”按钮,如图2.9所示。

 

同类,在PXSCJ数据库新增的文件组FGroup中增加数据文件PXSCJ2。操作土办法如下。

选着“文件”选项卡,按增加数据文件的操作土办法去掉 数据文件。在“文件组”下拉框中选着“FGroup”,如图2.10所示,单击“选着”按钮。

 

删除文件组的操作土办法如下。

选着“文件组”选项卡。选中需删除的文件组,单击对话框右下角的“删除”按钮,再单击“选着”按钮即可删除。

(4)数据库的重命名。使用图形界面修改数据库名称的土办法是:启动“SQL Server Management Studio”,在“对象资源管理器”窗口中,展开“数据库”,选着要重命名的数据库,右击鼠标,在弹出的快捷菜单中选着“重命名”菜单项,输入新的数据库名称,即可更改数据库的名称。在一般情况报告下,不建议用户更改日后 创建好的数据库名称,日后 其他程序日后 日后 使用了该名称,在更改了数据库名称日后 ,还能不都里能修改相应的程序。

2.2.3删除数据库

通常的做法是,把其他没法的数据库删除,以释放被其占用的系统空间和消耗。用户能不都里能利用图形向导土办法轻松地完成数据库系统的删除工作。

【例2.4】 删除PXSCJ数据库。

启动SQL Server Management Studio,在对象资源管理器中选着要删除的数据库“PXSCJ”,右击鼠标,在弹出的快捷菜单中选着“删除”菜单项,打开如图2.11所示的“删除对象”对话框,单击右下角的“选着”按钮,即可删除数据库PXSCJ。

 

2.3命令土办法创建数据库

2.3.1 创建数据库



命令土办法创建数据库使用CREATE DATABASE命令,创建能不都里能确保用户具有创建数据库的权限。

语法格式。

说明:

在对语法格式进行解释日后 ,先介绍本书的Transact-SQL语法格式中使用的约定。表2.1列出了哪些地方地方约定,并进行了说明。哪些地方地方约定在本书介绍T-SQL语法格式时都适用。

表2.1 本书Transact-SQL语法的约定和说明

CREATE DATABASE database_name 
    [ ON 
            [ PRIMARY ] [ <filespec> [ ,...n ] 
            [ , <filegroup> [ ,...n ] ] 
        [ LOG ON { <filespec> [ ,...n ] } ] 
    ] 
    [ COLLATE collation_name ]
    [ WITH <external_access_option> ]
  [FOR { ATTACH | ATTACH_REBUILD_LOG }]
]    
[;]
其中,
<filespec> ::= 
{(
        NAME = logical_file_name ,
            FILENAME = { 'os_file_name' | 'filestream_path' } 
            [ , SIZE = size [ KB | MB | GB | TB ] ] 
            [ , MAXSIZE = { max_size [ KB | MB | GB | TB ] | UNLIMITED } ] 
            [ , FILEGROWTH = growth_increment [ KB | MB | GB | TB | % ] ]
) [ ,...n ]
}
<filegroup> ::= 
{
    FILEGROUP filegroup_name [ CONTAINS FILESTREAM ] [ DEFAULT ]
        <filespec> [ ,...n ]
}
<external_access_option> ::=
{
      [ DB_CHAINING { ON | OFF } ]
      [ , TRUSTWORTHY { ON | OFF } ]
}

下面对CREATE DABASE命令的语法格式进行说明。

(1)database_name:所创建的数据库逻辑名称,该名称在SQL Server实例中能不都里能唯一。其命名须遵循SQL Server 4008的命名规则,最大长度为128个字符。

(2)ON子句:指定了数据库的数据文件和文件组,其中,PRIMARY用来指定主文件。若不指定主文件,则各数据文件中的第几条 多文件将成为主文件。

(3)<filespec>:指定数据库文件的属性,主要给出文件的逻辑名、存储路径、大小及增长社会形态。哪些地方地方社会形态能不都里能与以界面土办法创建数据库时对数据库社会形态的设置相联系。

① logical_file_name:逻辑文件名,是数据库创建后在所有T-SQL一段话中引用文件时所使用的名字。

② os_file_name:操作系统文件名,是操作系统在创建物理文件时使用的路径和文件名。对于FILESTREAM文件组,FILENAME选项指向将存储FILESTREAM数据的路径“filestream_path”。在最后几条 多文件夹日后 的路径能不都里能位于,但没法位于最后几条 多文件夹。同类,日后 指定路径C:\Filestream\Data,则C:\Filestream能不都里能位于不都里能运行CREATE DATABASE一段话,但 Data文件夹没法位于。有关FILESTREAM的内容将在第3章中介绍。

③ size:是数据文件的初始容量大小。对于主文件,若不指出大小,则默认为model数据库主文件的大小。对于辅助数据文件,自动设置为3 MB。UNLIMITED关键字表示指定文件将增长到磁盘满。

④ max_size:指定文件的最大大小。UNLIMITED关键字表示文件大小不受限制,但实际上受磁盘可用空间限制。日后 不指定MAXSIZE选项,则文件将增长到磁盘空间满。

⑤ growth_increament:指出文件每次的增量,有百分比和空间值这名格式,前者如10%,即每次在日后 空间大小的基础上增长10%;后者如5 MB,即每次增长5 MB,而不管日后 空间大小是几条。但要注意,FILEGROWTH的值没法超过MAXSIZE的值。

(4)<filegroup>:定义文件组的属性。filegroup_name为定义的文件组的名称,CONTAINS FILESTREAM选项指定文件组在文件系统中存储FILESTREAM二进制大型对象(BLOB)。DEFAULT关键字指定命名文件组为数据库中的默认文件组。<filespec>用于指定属于该文件组的文件。文件组中各文件的描述和数据文件描述相同。

(5)LOG ON子句:用于指定数据库事务日志文件的属性,其定义格式与数据文件的格式相同。日后 没法指定该子句,则将自动创建几条 多日志文件。

(6)COLLATE collation_name:指定数据库的默认排序规则。排序规则名称既能不都里能是 Windows 排序规则名称,不都里能不都里能是 SQL 排序规则名称。日后 没法指定排序规则,则将SQL Server实例的默认排序规则分配为数据库的排序规则。

(7)WITH子句:用于控制內部与数据库之间的双向访问。

① DB_CHAINING { ON | OFF }

当指定为ON时,数据库能不都里能为跨数据库所有权链的源或目标。当为OFF时,数据库没法参与跨数据库所有权链接。默认值为OFF。

② TRUSTWORTHY { ON | OFF }

当指定为ON时,使用模拟上下文的数据库模块(如视图、用户定义函数或存储过程)能不都里能访问数据库以外的资源。当为OFF时,模拟上下文中的数据库模块没法访问数据库以外的资源。默认值为OFF。

(8)FOR子句:

① FOR ATTACH子句:指定通过附加一组现有的操作系统文件来创建数据库,使用FOR ATTACH子句时能不都里能指定数据库的主文件。日后 有多个数据和日志文件,则能不都里能确保所有的.mdf文件和.ndf文件可用,日后 操作将失败。

② FOR ATTACH_REBUILD_LOG子句:指定通过附加一组现有的操作系统文件来创建数据库,使用这名 选项将不再能不都里能所有日志文件。

由语法格式可知,最简单的一句创建数据库的一段话为

CREATE DATABASE database_name

【例2.5】 创建几条 多名为TEST1的数据库,其初始大小为5 MB,最大大小为400 MB,允许数据库自动增长,增长土办法是按10%比例增长。日志文件初始为2 MB,最大可增长到5 MB,按1 MB增长。数据文件和日志文件的存放位置为SQL Server的数据库目录“C:\Program Files\Microsoft SQL Server\MSSQL10.SQL4008\ MSSQL\DATA”。假设SQL Server服务已启动,并以系统管理员身份登录计算机。

在“SQL Server Management Studio”窗口中单击“新建查询”按钮新建几条 多查询窗口,如图2.12所示。

 

在“查询分析器”窗口中输入如下T-SQL一段话:
CREATE DATABASE TEST1
    ON
    (
        NAME= 'TEST1_DATA',
        FILENAME='C:\Program Files\Microsoft SQL Server\MSSQL10.SQL4008\MSSQL\DATA\TEST1.mdf',
        SIZE=5 MB,
        MAXSIZE=400 MB,
        FILEGROWTH=10%        
    ) 
    LOG ON
    (
        NAME='TEST1_log',
        FILENAME='C:\Program Files\Microsoft SQL Server\MSSQL10.SQL4008\MSSQL\DATA\TEST1.ldf',
        SIZE=2 MB,
        MAXSIZE=5 MB,
        FILEGROWTH=1 MB
    );

输入完毕后,单击SSMS面板上的“!执行”按钮,如图2.13所示。从图中能不都里能想看 ,CREATE DATABASE命令执行时,在结果窗口中将显示命令执行的进展情况报告。

当命令成功执行后,在“对象资源管理器”中展开“数据库”目录,能不都里能想看 ,新建的数据库“TEST1”就显示于其中。日后 没法发现“TEST1”,则选着“数据库”,右击鼠标,在弹出的快捷菜单中选着“刷新”菜单项即可。

通过数据库属性对话框能不都里能想看 ,新建立TEST1数据库的各项属性全部符合预定要求。

【例2.6】 创建几条 多名为TEST2的数据库,它几条 多数据文件,其中,主数据文件为20 MB,最大大小不限,按10%增长。 几条 多辅数据文件为20 MB,最大大小不限,按10%增长;几条 多多日志文件,大小为400 MB,最大大小为400 MB,按10 MB增长。

在查询分析器中输入如下T-SQL一段话并执行.

CREATE DATABASE TEST2
    ON 
    PRIMARY    /*主文件*/
    (    
        NAME = 'TEST2_data1',
        FILENAME = 'D:\data\test2_data1.mdf',
        SIZE = 20 MB,
        MAXSIZE = UNLIMITED,
        FILEGROWTH = 10%
    ),   /*有逗号*
    (    
        NAME = 'TEST2_data2',
        FILENAME = 'D:\data\test2_data2.ndf',
        SIZE = 20 MB,
        MAXSIZE = UNLIMITED,
        FILEGROWTH = 10%
    )   /* 无逗号*/
    LOG ON
    (    
        NAME = 'TEST2_log1',
        FILENAME = 'D:\data\test2_log1.ldf',
        SIZE = 400 MB,
        MAXSIZE = 400 MB,
        FILEGROWTH = 10 MB
    );

【例2.7】 创建几条 多具几条 多文件组的数据库TEST3。要求:

(1)主文件组包括文件TEST3_dat1,文件初始大小为20 MB,最大为400 MB,按5 MB增长;

(2)几条 多多文件组名为TEST3Group1,包括文件TEST3_dat2,文件初始大小为10 MB,最大为400 MB,按10%增长。

CREATE DATABASE TEST3
    ON 
    PRIMARY 
    (    
        NAME = 'TEST3_dat1',
        FILENAME = 'D:\data\TEST3_dat1.mdf',
        SIZE = 20 MB,
        MAXSIZE = 400 MB,
        FILEGROWTH = 5 MB
    ),
    FILEGROUP TEST3Group1
    (    
        NAME = 'TEST3_dat2',
        FILENAME = 'D:\data\TEST3_dat2.ndf',
        SIZE = 10 MB,
        MAXSIZE = 400 MB,
        FILEGROWTH = 10%
    )

2.3.2修改数据库

使用ALTER DATABASE命令可对数据库进行以下修改:

增加或删除数据文件;

改变数据文件的大小和增长土办法;

改变日志文件的大小和增长土办法;

增加或删除日志文件;

增加或删除文件组。

语法格式。

ALTER DATABASE database_name
{     ADD FILE <filespec>[,…n][ TO FILEGROUP filegroup_name ]    /*在文件组中增加数据文件*/
    | ADD LOG FILE <filespec>[,…n]                           /*增加日志文件*/
    | REMOVE FILE logical_file_name                           /*删除数据文件*/
    | ADD FILEGROUP filegroup_name [CONTAINS FILESTREAM]     /*增加文件组*/
    | REMOVE FILEGROUP filegroup_name                      /*删除文件组*/
    | MODIFY FILE <filespec>                                 /*更改文件属性*/
    | MODIFY NAME = new_dbname                           /*数据库更名*/
    | MODIFY FILEGROUP filegroup_name 
    {        <filegroup_updatability_option>
         | DEFAULT
        | NAME = new_filegroup_name 
    }                                                /*更改文件组属性*/
    | SET <optionspec> [ ,...n ] [ WITH <termination> ]               /*设置数据库属性*/
    | COLLATE collation_name                                 /*指定数据库排序规则*/
}
[;]
其中,
<filegroup_updatability_option>::=
{
        { READONLY | READWRITE } 
    |     { READ_ONLY | READ_WRITE }
}

【例2.8】 假设日后 创建了例2.5中的数据库TEST1,它只几条 多多主数据文件,其逻辑文件名为TEST1_DATA,大小为5 MB,最大为400 MB,增长土办法为按10%增长。

要求:修改数据库TEST1现有数据文件TEST1_DATA的属性,将主数据文件的最大大小改为400 MB,增长土办法改为按每次5 MB增长。

在“查询分析器”窗口中输入如下Transact-SQL一段话:
ALTER DATABASE TEST1
MODIFY FILE 
(    
  NAME = TEST1_DATA,
  MAXSIZE =400 MB,    /*将主数据文件的最大大小改为400 MB*/
  FILEGROWTH = 5 MB /*将主数据文件的增长土办法改为按5 MB增长*/
)
GO

单击“执行”按钮执行输入的T_SQL一段话,右击“对象资源管理器”中的“数据库”,选着“刷新”菜单项,日后 右击数据库TEST1的图标,选着“属性”菜单项,在“文件”页上查看修改后的数据文件。

【例2.9】 先为数据库TEST1增加数据文件TEST1BAK。日后 删除该数据文件。

ALTER DATABASE TEST1
ADD FILE
(    
  NAME = 'TEST1BAK',
  FILENAME = 'D:\data\TEST1BAK.ndf',
  SIZE = 10 MB,
  MAXSIZE = 400 MB,
  FILEGROWTH = 5%
)

通过查看“数据库属性”窗口中的文件属性来观察数据库“TEST1”算不算增加数据文件TEST1BAK。

删除数据文件TEST1BAK的命令如下:

ALTER DATABASE TEST1
  REMOVE FILE TEST1BAK
GO

【例2.10】 为数据库TEST1去掉 文件组FGROUP,并为此文件组去掉 几条 多大小均为10 MB的数据文件。

ALTER DATABASE TEST1
  ADD FILEGROUP FGROUP
GO
ALTER DATABASE TEST1
  ADD FILE
  (    
    NAME = 'TEST1_DATA2',
    FILENAME = 'D:\data\TEST1_Data2.ndf',
    SIZE = 10 MB
  ),
  (    
    NAME = 'TEST1_DATA3',
    FILENAME = 'D:\data\TEST1_Data3.ndf',
    SIZE = 10 MB
  )
  TO FILEGROUP FGROUP
GO

【例2.11】 从数据库中删除文件组,将例2.10中去掉 到TEST1数据库中的文件组FGROUP删除。

注意:被删除的文件组中的数据文件能不都里能先删除,且没法删除主文件组。

在查询分析器中输入如下Transact-SQL一段话并执行:

ALTER DATABASE TEST1
  REMOVE FILE TEST1_DATA2
GO
ALTER DATABASE TEST1
  REMOVE FILE TEST1_DATA3
GO
ALTER DATABASE TEST1
  REMOVE FILEGROUP FGROUP
GO

【例2.12】 为数据库TEST1去掉 几条 多日志文件。

在查询分析器中输入如下Transact-SQL一段话并执行:

ALTER DATABASE TEST1
  ADD LOG FILE
  (    
    NAME = 'TEST1_LOG2',
    FILENAME = 'D:\data\TEST1_Log2.ldf',
    SIZE = 5 MB,
    MAXSIZE =10 MB,
    FILEGROWTH = 1 MB
  )
GO

【例2.13】 从数据库TEST1中删除几条 多日志文件,将日志文件TEST1_LOG2删除。注意,没法删除主日志文件。

将数据库TEST1的名称改为JUST_TEST。进行此操作时能不都里能保证该数据库此时没法被其他任何用户使用。

在查询分析器中输入如下Transact-SQL一段话并执行:

ALTER DATABASE TEST1
  REMOVE FILE TEST1_LOG2
GO
ALTER DATABASE TEST1
  MODIFY NAME = JUST_TEST
GO

2.3.3  删除数据库

删除数据库使用DROP DATABASE命令。

语法格式:

DROP DATABASE database_name[,…n][;]

其中,database_name是要删除的数据库名。同类,要删除数据库TEST2,使用命令:

2.3.4  数据库快照

快照可用于报表。另外,日后 源数据库几条劲出现用户错误,还可将源数据库恢复到创建快照时的情况报告。丢失的数据仅限于创建快照后数据库更新的数据。

在SQL Server 4008中,创建数据库快照也使用CREATE DATABASE命令。语法格式如下: 

CREATE DATABASE database_snapshot_name 
        ON 
            (
                NAME = logical_file_name,
                FILENAME = 'os_file_name' 
            ) [ ,...n ] 
        AS SNAPSHOT OF source_database_name
[;]

【例2.14】 创建PXSCJ数据库的快照PXSCJ_01。

CREATE DATABASE PXSCJ_01
    ON
    (
        NAME=PXSCJ,
        FILENAME='D:\data\PXSCJ_01.mdf'
    )
    AS SNAPSHOT OF PXSCJ
GO



命令执行成功日后 ,在对象资源管理器中刷新“数据库”菜单栏,在“数据库”中展开“数据库快照”,就能不都里能看见日后 创建的数据库快照PXSCJ_01了。

删除数据库快照的土办法和删除数据库的土办法全部相同,能不都里能使用界面土办法删除,不都里能不都里能使用命令土办法删除,同类,

DROP DATABASE PXSCJ_01;