278.sqlserver2008数据库操作

  • 时间:
  • 浏览:1

1.1基本模式

1.1.1 逻辑数据库

  用户经常需用在T-SQL中引用SQL Server对象并对其进行操作,如对数据库表进行查询和数据更新等,在其所使用的T-SQL句子中需用给出对象的名称。用户还可以 能给出两种对象名,即删改限定名和每项限定名。



(1)删改限定名。在SQL Server 30008中,删改限定名是对象的全名,

包括一个多多 每项:服务器名数据库名数据库架构名对象名

其格式为          server.database.scheme.object

在SQL Server 30008上创建的每一个多多 对象都需用三个多多 唯一的删改限定名。

(2)每项限定名。在使用T-SQL编程时,常省略全名中的某些每项,对象全名的一个多多 每项中的前六个每项均还可以 能省略,当省略中间的每项时,圆点符“.”不可省略。把只带有 对象删改限定名中的一每项的对象名称为每项限定名。SQL Server还可以 能根据系统的当前工作环境确定对象名称中省略的每项。

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

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

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

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

例如,以下是某些正确的对象每项限定名:
server.database..object          /*省略架构名*/
server.. scheme.object            /*省略数据库名*/
database. scheme.object          /*省略服务器名*/
server…object                    /*省略架构名和数据库名*/
scheme.object                     /*省略服务器名和数据库名*/
object                           /*省略服务器名、数据库名和架构名*/

  下面大致介绍一下SQL Server 30008中所带有 的常用数据库对象。

1 表:表是SQL Server中最主要的数据库对象,它是用来存储和操作数据的两种逻辑底部形态。表由行和列组成,有但是也称为二维表。表是在日常工作和联 活中经常使用的两种表示数据及其关系的形式。



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

可能性视图两种未必存储实际数据,有但是还可以 还可以 称之为虚表。视图中的数据来自定义视图的查询所引用的基本表,并在引用时动态生成数据。当基本表中的数据发生变化时,从视图中查询出来的数据也随之改变。视图一经定义,就还可以 能像基本表一样被查询、修改、删除和更新了。

3 索引:索引是两种不让扫描整个数据表就还可以 能对表中的数据实现快速访问的途径,它是对数据表中的一列可能性多列数据进行排序的两种底部形态。

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

索引是根据索引表达式的值进行逻辑排序的一组指针,它还可以 能实现对数据的快速访问,索引是关系数据库的组织组织结构实现技术,它被存装进存储文件中。

4 约束:约束机制保障了SQL Server 30008中数据的一致性与删改性,具有代表性的约束可是我主键和外键。主键约束当前表记录的唯一性,外键约束当前表记录与某些表的关系。



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

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



②默认值:默认值是在用户没有 给出具体数据时,系统所自动生成的数值。它是SQL Server 30008系统确保数据一致性和删改性的依据 。

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



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



⑤ 类型:用户还可以 能根据需用在给定的系统类型之上定义本人的数据类型。



⑥ 函数:用户还可以 能根据需用在SQL Server 30008上定义本人的函数。

1.1.2  物理数据库

1.页和区

SQL Server 30008带有 一个多多 主要的数据存储单位:页和区。

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

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

2.数据库文件

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

(1)主数据文件。主数据文件简称主文件,正如其名字所示,该文件是数据库的关键文件,带有 了数据库的启动信息,有但是存储数据。每个数据库需用有且仅能三个多多 主文件,其默认扩展名为.mdf可直接拷贝

(2)辅助数据文件。辅助数据文件简称辅(助)文件,用于存储未包括在主文件内的某些数据。辅助文件的默认扩展名为.ndf。辅助文件是可选的,根据具体情況,还可以 能创建多个辅助文件,还可以 还可以 不使用辅助文件。一般当数据库很大时,有可能性需用创建多个辅助文件。而当数据库较小时,则只需用创建主文件而不需用创建辅助文件。

(3)日志文件。日志文件用于保存恢复数据库所需的事务日志信息。每个数据库共要三个多多 日志文件,也可否是多个,日志文件的扩展名为.ldf。日志文件的存储与数据文件不同,它带有 一系列记录,有有哪些记录的存储不以页为存储单位。

3.文件组

使用文件组还可以 能提高表中数据的查询性能。在SQL Server 30008带有 两类文件组。

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

(2)用户定义文件组。用户定义文件组是发生CREATE DATABASE或ALTER DATABASE句子中使用FILEGROUP关键字指定的文件组。

每个数据库中总要一个多多 文件组作为默认文件组运行。若在SQL Server 30008中创建表或索引时没有 为其指定文件组,没有 将从默认文件组中进行存储页分配、查询等操作。用户还可以 能指定默认文件组,可能性没有 指定默认文件组,则主文件组是默认文件组。

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

  系统数据库存储有关SQL Server的系统信息,它们是SQL Server 30008管理数据库的依据 。可能性系统数据库遭到破坏,没有 SQL Server将只能正常启动。在安装SQL Server 30008时,系统将创建一个多多 可见的系统数据库:master、model、msdbtempdb

(1)master数据库带有 了SQL Server 30008的登录账号、系统配置、数据库位置及数据库错误信息等,控制用户数据库和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 30008”,确定并启动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.SQL30008 \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 30008的命名规则,最大长度为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,而不管曾经空间大小是2个。但要注意,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,最大大小为3000 MB,允许数据库自动增长,增长依据 是按10%比例增长。日志文件初始为2 MB,最大可增长到5 MB,按1 MB增长。数据文件和日志文件的存放位置为SQL Server的数据库目录“C:\Program Files\Microsoft SQL Server\MSSQL10.SQL30008\ 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.SQL30008\MSSQL\DATA\TEST1.mdf',
        SIZE=5 MB,
        MAXSIZE=3000 MB,
        FILEGROWTH=10%        
    ) 
    LOG ON
    (
        NAME='TEST1_log',
        FILENAME='C:\Program Files\Microsoft SQL Server\MSSQL10.SQL30008\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%增长;三个多多 日志文件,大小为3000 MB,最大大小为3000 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 = 3000 MB,
        MAXSIZE = 3000 MB,
        FILEGROWTH = 10 MB
    );

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

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

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

CREATE DATABASE TEST3
    ON 
    PRIMARY 
    (    
        NAME = 'TEST3_dat1',
        FILENAME = 'D:\data\TEST3_dat1.mdf',
        SIZE = 20 MB,
        MAXSIZE = 300 MB,
        FILEGROWTH = 5 MB
    ),
    FILEGROUP TEST3Group1
    (    
        NAME = 'TEST3_dat2',
        FILENAME = 'D:\data\TEST3_dat2.ndf',
        SIZE = 10 MB,
        MAXSIZE = 300 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,最大为3000 MB,增长依据 为按10%增长。

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

在“查询分析器”窗口中输入如下Transact-SQL句子:
ALTER DATABASE TEST1
MODIFY FILE 
(    
  NAME = TEST1_DATA,
  MAXSIZE =3000 MB,    /*将主数据文件的最大大小改为3000 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 = 3000 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 30008中,创建数据库快照也使用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;