278.sqlserver2008数据库操作

  • 时间:
  • 浏览:0

1.1基本模式

1.1.1 逻辑数据库

  用户无缘无故时要在T-SQL中引用SQL Server对象并对其进行操作,如对数据库表进行查询和数据更新等,在其所使用的T-SQL一段话中时要给出对象的名称。用户可不都可不后能 给出你这个对象名,即完整限定名和部分限定名。



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

包括五个 部分:服务器名数据库名数据库架构名对象名

其格式为          server.database.scheme.object

在SQL Server 10008上创建的每五个 对象都时要五个 多唯一的完整限定名。

(2)部分限定名。在使用T-SQL编程时,常省略全名中的但会 部分,对象全名的五个 部分中的前五个部分均可不都可不后能 省略,当省略里边的部分时,圆点符“.”不可省略。把只蕴含对象完整限定名中的一部分的对象名称为部分限定名。SQL Server可不都可不后能 根据系统的当前工作环境选则对象名称中省略的部分。

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

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

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

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

之类,以下是但会



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

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

1 表:表是SQL Server中最主要的数据库对象,它是用来存储和操作数据的你这个逻辑形态。表由行和列组成,假使 也称为二维表。表是在日常工作和联 活中无缘无故使用的你这个表示数据及其关系的形式。



2 视图:视图是从五个 或多个基本表中引出的表。数据库中只存放视图的定义而不存放视图对应的数据,那先 数据仍存倒入导出视图的基本表中。

意味着着视图你这个不须存储实际数据,假使 也可不都可不后能 称之为虚表。视图中的数据来自定义视图的查询所引用的基本表,并在引用时动态生成数据。当基本表中的数据处在变化时,从视图中查询出来的数据也随之改变。视图一经定义,就可不都可不后能 像基本表一样被查询、修改、删除和更新了。

3 索引:索引是你这个不让扫描整个数据表就可不都可不后能 对表中的数据实现快速访问的途径,它是对数据表中的一列意味着着多列数据进行排序的你这个形态。

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

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

4 约束:约束机制保障了SQL Server 10008中数据的一致性与完整,具有代表性的约束很多很多主键和外键。主键约束当前表记录的唯一性,外键约束当前表记录与但会 表的关系。



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

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



②默认值:默认值是在用户没人给出具体数据时,系统所自动生成的数值。它是SQL Server 10008系统确保数据一致性和完整的法律依据。

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



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



⑤ 类型:用户可不都可不后能 根据时要在给定的系统类型之上定义本人的数据类型。



⑥ 函数:用户可不都可不后能 根据时要在SQL Server 10008上定义本人的函数。

1.1.2  物理数据库

1.页和区

SQL Server 10008中五个 多主要的数据存储单位:页和区。

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

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

2.数据库文件

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

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

(2)辅助数据文件。辅助数据文件简称辅(助)文件,用于存储未包括在主文件内的但会 数据。辅助文件的默认扩展名为.ndf。辅助文件是可选的,根据具体状况,可不都可不后能 创建多个辅助文件,也可不都可不后能 不使用辅助文件。一般当数据库很大时,有意味着着时要创建多个辅助文件。而当数据库较小时,则只时要创建主文件而不时要创建辅助文件。

(3)日志文件。日志文件用于保存恢复数据库所需的事务日志信息。每个数据库要花费五个 多日志文件,也可不都可不后能 有多个,日志文件的扩展名为.ldf。日志文件的存储与数据文件不同,它蕴含一系列记录,那先 记录的存储不以页为存储单位。

3.文件组

使用文件组可不都可不后能 提高表中数据的查询性能。在SQL Server 10008蕴含两类文件组。

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

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

每个数据库中全是五个 文件组作为默认文件组运行。若在SQL Server 10008中创建表或索引时没人为其指定文件组,没人将从默认文件组中进行存储页分配、查询等操作。用户可不都可不后能 指定默认文件组,意味着着没人指定默认文件组,则主文件组是默认文件组。

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

  系统数据库存储有关SQL Server的系统信息,它们是SQL Server 10008管理数据库的法律依据。意味着着系统数据库遭到破坏,没人SQL Server将非要正常启动。在安装SQL Server 10008时,系统将创建五个 可见的系统数据库:master、model、msdbtempdb

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

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

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

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

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

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

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