用户常常须要在T-SQL中引用SQL Server对象并对其进行操做,如对数据库表进行查询和数据更新等,在其所使用的T-SQL语句中须要给出对象的名称。用户能够给出两种对象名,即彻底限定名和部分限定名。数据库
(1)彻底限定名。在SQL Server 2008中,彻底限定名是对象的全名,编程
包括4个部分:服务器名、数据库名、数据库架构名和对象名,服务器
其格式为 server.database.scheme.object
在SQL Server 2008上建立的每个对象都必须有一个惟一的彻底限定名。架构
(2)部分限定名。在使用T-SQL编程时,常省略全名中的某些部分,对象全名的4个部分中的前3个部分都可以省略,当省略中间的部分时,圆点符“.”不可省略。把只包含对象彻底限定名中的一部分的对象名称为部分限定名。SQL Server能够根据系统的当前工做环境肯定对象名称中省略的部分。
在部分限定名中,未指出的部分使用如下默认值。
服务器:默认为本地服务器。
数据库:默认为当前数据库。
数据库架构名:默认为dbo。函数
例如,如下是一些正确的对象部分限定名: server.database..object /*省略架构名*/ server.. scheme.object /*省略数据库名*/ database. scheme.object /*省略服务器名*/ server…object /*省略架构名和数据库名*/ scheme.object /*省略服务器名和数据库名*/ object /*省略服务器名、数据库名和架构名*/
下面大体介绍一下SQL Server 2008中所包含的经常使用数据库对象。
1 表:表是SQL Server中最主要的数据库对象,它是用来存储和操做数据的一种逻辑结构。表由行和列组成,所以也称为二维表。表是在平常工做和生活中常用的一种表示数据及其关系的形式。 post
2 视图:视图是从一个或多个基本表中引出的表。数据库中只存放视图的定义而不存放视图对应的数据,这些数据仍存放在导出视图的基本表中。性能
因为视图自己并不存储实际数据,所以也能够称之为虚表。视图中的数据来自定义视图的查询所引用的基本表,并在引用时动态生成数据。当基本表中的数据发生变化时,从视图中查询出来的数据也随之改变。视图一经定义,就能够像基本表同样被查询、修改、删除和更新了。spa
3 索引:索引是一种不用扫描整个数据表就能够对表中的数据实现快速访问的途径,它是对数据表中的一列或者多列数据进行排序的一种结构。
表中的记录一般按其输入的时间顺序存放,这种顺序称为记录的物理顺序。为了实现对表记录的快速查询,能够对表的记录按某个或某些属性进行排序,这种顺序称为逻辑顺序。
索引是根据索引表达式的值进行逻辑排序的一组指针,它能够实现对数据的快速访问,索引是关系数据库的内部实现技术,它被存放在存储文件中。操作系统
4 约束:约束机制保障了SQL Server 2008中数据的一致性与完整性,具备表明性的约束就是主键和外键。主键约束当前表记录的惟一性,外键约束当前表记录与其余表的关系。3d
5 存储过程:存储过程是一组为了完成特定功能的SQL语句集合(功能函数)。这个语句集合通过编译后存储在数据库中,存储过程具备接受参数、输出参数、返回单个或多个结果以及返回值的功能。存储过程独立于表存在(表不存在,存储过程存在,可是会出错)。存储过程有与函数相似的地方,但它又不一样于函数,例如,它不返回取代其名称的值,也不能直接在表达式中使用。
① 触发器:触发器与表紧密关联。它能够实现更加复杂的数据操做,更加有效地保障数据库系统中数据的完整性和一致性。触发器基于一个表建立,但能够对多个表进行操做。(学生学号改,住宿表,学费表都改的实现)
②默认值:默认值是在用户没有给出具体数据时,系统所自动生成的数值。它是SQL Server 2008系统确保数据一致性和完整性的方法。
③ 用户和角色:用户是指对数据库有存取权限的使用者;角色是指一组数据库用户的集合。这两个概念相似于Windows XP的本地用户和组的概念。
④ 规则:规则用来限制表字段的数据范围。
⑤ 类型:用户能够根据须要在给定的系统类型之上定义本身的数据类型。
⑥ 函数:用户能够根据须要在SQL Server 2008上定义本身的函数。
1.页和区
SQL Server 2008中有两个主要的数据存储单位:页和区。
页是用于数据存储的最基本单位。每一个页的大小是8 KB。每页的开头是96 B的标头,用于存储有关页的系统信息。紧接着标头存放的是数据行,数据行按顺序排列。数据库表中的每一行数据都不能跨页存储,即表中的每一行数据字节数不能超过8192。页的末尾是行偏移表,页中的每一行在偏移表中都有一个对应的条目。每一个条目记录着对应行的第一个字节与页首部的距离。
区是用于管理空间的基本单位。每8个链接的页组成一个区,大小为64 KB,即每1 MB的数据库就有16个区。区用于控制表和索引的存储。
2.数据库文件
SQL Server 2008所使用的文件包括如下三类文件。
(1)主数据文件。主数据文件简称主文件,正如其名字所示,该文件是数据库的关键文件,包含了数据库的启动信息,而且存储数据。每一个数据库必须有且仅能有一个主文件,其默认扩展名为.mdf。可直接拷贝
(2)辅助数据文件。辅助数据文件简称辅(助)文件,用于存储未包括在主文件内的其余数据。辅助文件的默认扩展名为.ndf。辅助文件是可选的,根据具体状况,能够建立多个辅助文件,也能够不使用辅助文件。通常当数据库很大时,有可能须要建立多个辅助文件。而当数据库较小时,则只须要建立主文件而不须要建立辅助文件。
(3)日志文件。日志文件用于保存恢复数据库所需的事务日志信息。每一个数据库至少有一个日志文件,也能够有多个,日志文件的扩展名为.ldf。日志文件的存储与数据文件不一样,它包含一系列记录,这些记录的存储不以页为存储单位。
3.文件组
使用文件组能够提升表中数据的查询性能。在SQL Server 2008中有两类文件组。
(1)主文件组。主文件组包含主要数据文件和任何没有明确指派给其余文件组的其余文件。管理数据库的系统表的全部页均分配在主文件组中。
(2)用户定义文件组。用户定义文件组是指在CREATE DATABASE或ALTER DATABASE语句中使用FILEGROUP关键字指定的文件组。
每一个数据库中都有一个文件组做为默认文件组运行。若在SQL Server 2008中建立表或索引时没有为其指定文件组,那么将从默认文件组中进行存储页分配、查询等操做。用户能够指定默认文件组,若是没有指定默认文件组,则主文件组是默认文件组。
系统数据库存储有关SQL Server的系统信息,它们是SQL Server 2008管理数据库的依据。若是系统数据库遭到破坏,那么SQL Server将不能正常启动。在安装SQL Server 2008时,系统将建立4个可见的系统数据库:master、model、msdb和tempdb。
(1)master数据库包含了SQL Server 2008的登陆帐号、系统配置、数据库位置及数据库错误信息等,控制用户数据库和SQL Server的运行。
(2)model数据库为新建立的数据库提供模板。
(3)msdb数据库为“SQL Server代理”调度信息和做业记录提供存储空间。
(4)tempdb数据库为临时表和临时存储过程提供存储空间,全部与系统链接的用户的临时表和临时存储过程都存储于该数据库中。
每一个系统数据库都包含主数据文件和主日志文件。扩展名分别为.mdf 和.ldf,例如master数据库的两个文件分别为master.mdf和master.ldf。
下面以建立学生成绩管理系统的数据库(名为PXSCJ)为例,说明使用SQL Server Management Studio窗口图形化向导建立数据库的过程。
【例2.1】 建立数据库PXSCJ,数据文件和日志文件的属性按默认值设置。
建立该数据库的主要过程以下。
第1步:以系统管理员身份登陆计算机,在桌面上单击“开始→全部程序→Microsoft SQL Server 2008”,选择并启动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.SQL2008 \MSSQL\DATA。这里,数据库文件大小、增加方式和路径都使用默认值,确认后单击“肯定”按钮。
至此数据库PXSCJ已经建立完成了,此时,能够在对象资源管理器的“数据库”目录下找到该数据库所对应的图标,如图2.4所示。
图2.4 建立后的PXSCJ数据库
在数据库成功建立后,数据文件名和日志文件名就不能改变了。对已存在的数据库能够进行的修改包括如下几项。
下面以对数据库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.4】 删除PXSCJ数据库。
启动SQL Server Management Studio,在对象资源管理器中选择要删除的数据库“PXSCJ”,右击鼠标,在弹出的快捷菜单中选择“删除”菜单项,打开如图2.11所示的“删除对象”对话框,单击右下角的“肯定”按钮,便可删除数据库PXSCJ。
命令方式建立数据库使用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 2008的命名规则,最大长度为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,最大大小为50 MB,容许数据库自动增加,增加方式是按10%比例增加。日志文件初始为2 MB,最大可增加到5 MB,按1 MB增加。数据文件和日志文件的存放位置为SQL Server的数据库目录“C:\Program Files\Microsoft SQL Server\MSSQL10.SQL2008\ 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.SQL2008\MSSQL\DATA\TEST1.mdf', SIZE=5 MB, MAXSIZE=50 MB, FILEGROWTH=10% ) LOG ON ( NAME='TEST1_log', FILENAME='C:\Program Files\Microsoft SQL Server\MSSQL10.SQL2008\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%增加。 1个辅数据文件为20 MB,最大大小不限,按10%增加;有1个日志文件,大小为50 MB,最大大小为100 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 = 50 MB, MAXSIZE = 100 MB, FILEGROWTH = 10 MB );
【例2.7】 建立一个具备2个文件组的数据库TEST3。要求:
(1)主文件组包括文件TEST3_dat1,文件初始大小为20 MB,最大为60 MB,按5 MB增加;
(2)有1个文件组名为TEST3Group1,包括文件TEST3_dat2,文件初始大小为10 MB,最大为30 MB,按10%增加。
CREATE DATABASE TEST3 ON PRIMARY ( NAME = 'TEST3_dat1', FILENAME = 'D:\data\TEST3_dat1.mdf', SIZE = 20 MB, MAXSIZE = 60 MB, FILEGROWTH = 5 MB ), FILEGROUP TEST3Group1 ( NAME = 'TEST3_dat2', FILENAME = 'D:\data\TEST3_dat2.ndf', SIZE = 10 MB, MAXSIZE = 30 MB, FILEGROWTH = 10% )
使用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,最大为50 MB,增加方式为按10%增加。
要求:修改数据库TEST1现有数据文件TEST1_DATA的属性,将主数据文件的最大大小改成100 MB,增加方式改成按每次5 MB增加。
在“查询分析器”窗口中输入以下Transact-SQL语句: ALTER DATABASE TEST1 MODIFY FILE ( NAME = TEST1_DATA, MAXSIZE =100 MB, /*将主数据文件的最大大小改成100 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 = 50 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
删除数据库使用DROP DATABASE命令。
语法格式:
DROP DATABASE database_name[,…n][;]
其中,database_name是要删除的数据库名。例如,要删除数据库TEST2,使用命令:
DROP DATABASE TEST2 GO
快照可用于报表。另外,若是源数据库出现用户错误,还可将源数据库恢复到建立快照时的状态。丢失的数据仅限于建立快照后数据库更新的数据。
在SQL Server 2008中,建立数据库快照也使用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;