278.sqlserver2008数据库操作

  • 时间:
  • 浏览:0
  • 来源:幸运快3_快3下载app送28_幸运快3下载app送28

1.1基本模式

1.1.1 逻辑数据库

  用户一直时要在T-SQL中引用SQL Server对象并对其进行操作,如对数据库表进行查询和数据更新等,在其所使用的T-SQL搞笑的话中时要给出对象的名称。用户能只有给出这一对象名,即完正限定名和每种限定名。



(1)完正限定名。在SQL Server 5008中,完正限定名是对象的全名,

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

其格式为          server.database.scheme.object

在SQL Server 5008上创建的每另另一个对象都时要有另另一个唯一的完正限定名。

(2)每种限定名。在使用T-SQL编程时,常省略全名中的你这一 每种,对象全名的另另一个每种中的前十个 每种均能只有省略,当省略上端的每种时,圆点符“.”不可省略。把只带有对象完正限定名中的一每种的对象名称为每种限定名。SQL Server能只有根据系统的当前工作环境选择对象名称中省略的每种。

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

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

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

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

类似,以下是你这一

正确的对象每种限定名:
server.database..object          /*省略架构名*/
server.. scheme.object            /*省略数据库名*/
database. scheme.object          /*省略服务器名*/
server…object                    /*省略架构名和数据库名*/
scheme.object                     /*省略服务器名和数据库名*/
object                           /*省略服务器名、数据库名和架构名*/

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

1 表:表是SQL Server中最主要的数据库对象,它是用来存储和操作数据的这一逻辑实物。表由行和列组成,倘若也称为二维表。表是在日常工作和化活中一直使用的这一表示数据及其关系的形式。



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

愿因着视图这一何必 存储实际数据,倘若不上能只有称之为虚表。视图中的数据来自定义视图的查询所引用的基本表,并在引用时动态生成数据。当基本表中的数据处在变化时,从视图中查询出来的数据也随之改变。视图一经定义,就能只有像基本表一样被查询、修改、删除和更新了。

3 索引:索引是这一不必扫描整个数据表就能只有对表中的数据实现快速访问的途径,它是对数据表中的一列愿因着多列数据进行排序的这一实物。

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

索引是根据索引表达式的值进行逻辑排序的一组指针,它能只有实现对数据的快速访问,索引是关系数据库的实物实现技术,它被存贴到 存储文件中。

4 约束:约束机制保障了SQL Server 5008中数据的一致性与完正性,具有代表性的约束并且主键和外键。主键约束当前表记录的唯一性,外键约束当前表记录与你这一 表的关系。



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

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



②默认值:默认值是在用户这么给出具体数据时,系统所自动生成的数值。它是SQL Server 5008系统确保数据一致性和完正性的最好的办法。

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



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



⑤ 类型:用户能只有根据时要在给定的系统类型之上定义你这一 人的数据类型。



⑥ 函数:用户能只有根据时要在SQL Server 5008上定义你这一 人的函数。

1.1.2  物理数据库

1.页和区

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

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

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

2.数据库文件

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

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

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

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

3.文件组

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

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

(2)用户定义文件组。用户定义文件组是处在CREATE DATABASE或ALTER DATABASE搞笑的话中使用FILEGROUP关键字指定的文件组。

每个数据库中还会另另一个文件组作为默认文件组运行。若在SQL Server 5008中创建表或索引时这么为其指定文件组,这么将从默认文件组中进行存储页分配、查询等操作。用户能只有指定默认文件组,愿因着这么指定默认文件组,则主文件组是默认文件组。

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

  系统数据库存储有关SQL Server的系统信息,它们是SQL Server 5008管理数据库的最好的办法。愿因着系统数据库遭到破坏,这么SQL Server将只有正常启动。在安装SQL Server 5008时,系统将创建另另一个可见的系统数据库:master、model、msdbtempdb

(1)master数据库带有了SQL Server 5008的登录账号、系统配置、数据库位置及数据库错误信息等,控制用户数据库和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 5008”,选择并启动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.SQL5008 \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 5008的命名规则,最大长度为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,最大大小为500 MB,允许数据库自动增长,增长最好的办法是按10%比例增长。日志文件初始为2 MB,最大可增长到5 MB,按1 MB增长。数据文件和日志文件的存放位置为SQL Server的数据库目录“C:\Program Files\Microsoft SQL Server\MSSQL10.SQL5008\ 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.SQL5008\MSSQL\DATA\TEST1.mdf',
        SIZE=5 MB,
        MAXSIZE=500 MB,
        FILEGROWTH=10%        
    ) 
    LOG ON
    (
        NAME='TEST1_log',
        FILENAME='C:\Program Files\Microsoft SQL Server\MSSQL10.SQL5008\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%增长;有另另一个日志文件,大小为500 MB,最大大小为5000 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 = 500 MB,
        MAXSIZE = 5000 MB,
        FILEGROWTH = 10 MB
    );

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

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

(2)有另另一个文件组名为TEST3Group1,包括文件TEST3_dat2,文件初始大小为10 MB,最大为500 MB,按10%增长。

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

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

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