278.sqlserver2008数据库操作

  • 时间:
  • 浏览:0
  • 来源:大发uu快3_uu快3链接_大发uu快3链接

1.1基本模式

1.1.1 逻辑数据库

  用户老要需要在T-SQL中引用SQL Server对象并对其进行操作,如对数据库表进行查询和数据更新等,在其所使用的T-SQL一段话中需要给出对象的名称。用户还能够 给出并算不算对象名,即完整性限定名和帕累托图限定名。



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

包括有有好几只 多帕累托图:服务器名数据库名数据库架构名对象名

其格式为          server.database.scheme.object

在SQL Server 60 8上创建的每一有有好几只 多对象都需要有一有有好几只 多唯一的完整性限定名。

(2)帕累托图限定名。在使用T-SQL编程时,常省略全名中的你你这一帕累托图,对象全名的有有好几只 多帕累托图中的前好几只 帕累托图均还能够 省略,当省略里面的帕累托图时,圆点符“.”不可省略。把只蕴含对象完整性限定名中的一帕累托图的对象名称为帕累托图限定名。SQL Server还能够 根据系统的当前工作环境确定对象名称中省略的帕累托图。

在帕累托图限定名中,未指出的帕累托图使用以下默认值。

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

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

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

这类,以下是你你这一正确的对象帕累托图限定名:
server.database..object          /*省略架构名*/
server.. scheme.object            /*省略数据库名*/
database. scheme.object          /*省略服务器名*/
server…object                    /*省略架构名和数据库名*/
scheme.object                     /*省略服务器名和数据库名*/
object                           /*省略服务器名、数据库名和架构名*/

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

1 表:表是SQL Server中最主要的数据库对象,它是用来存储和操作数据的并算不算逻辑內部。表由行和列组成,怎么让也称为二维表。表是在日常工作和生活中老要使用的并算不算表示数据及其关系的形式。



2 视图:视图是从一有有好几只 多或多个基本表中引出的表。数据库中只存放视图的定义而不存放视图对应的数据,什么数据仍存倒入导出视图的基本表中。

原因分析视图并算不算暂且存储实际数据,怎么让也还能够 称之为虚表。视图中的数据来自定义视图的查询所引用的基本表,并在引用时动态生成数据。当基本表中的数据趋于稳定变化时,从视图中查询出来的数据也随之改变。视图一经定义,就还能够 像基本表一样被查询、修改、删除和更新了。

3 索引:索引是并算不算无需扫描整个数据表就还能够 对表中的数据实现快速访问的途径,它是对数据表中的一列原因分析多列数据进行排序的并算不算內部。

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

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

4 约束:约束机制保障了SQL Server 60 8中数据的一致性与完整性性,具有代表性的约束却说我主键和外键。主键约束当前表记录的唯一性,外键约束当前表记录与你你这一表的关系。



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

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



②默认值:默认值是在用户如此 给出具体数据时,系统所自动生成的数值。它是SQL Server 60 8系统确保数据一致性和完整性性的最好的方式。

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



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



⑤ 类型:用户还能够 根据需要在给定的系统类型之上定义此人 的数据类型。



⑥ 函数:用户还能够 根据需要在SQL Server 60 8上定义此人 的函数。

1.1.2  物理数据库

1.页和区

SQL Server 60 8蕴含有有好几只 多主要的数据存储单位:页和区。

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

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

2.数据库文件

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

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

(2)辅助数据文件。辅助数据文件简称辅(助)文件,用于存储未包括在主文件内的你你这一数据。辅助文件的默认扩展名为.ndf。辅助文件是可选的,根据具体请况,还能够 创建多个辅助文件,也还能够 不使用辅助文件。一般当数据库很大时,有原因分析需要创建多个辅助文件。而当数据库较小时,则只需要创建主文件而需要创建辅助文件。

(3)日志文件。日志文件用于保存恢复数据库所需的事务日志信息。每个数据库共要 有一有有好几只 多日志文件,也还能够 有多个,日志文件的扩展名为.ldf。日志文件的存储与数据文件不同,它蕴含一系列记录,什么记录的存储不以页为存储单位。

3.文件组

使用文件组还能够 提高表中数据的查询性能。在SQL Server 60 8蕴含两类文件组。

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

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

每个数据库中不会一有有好几只 多文件组作为默认文件组运行。若在SQL Server 60 8中创建表或索引时如此 为其指定文件组,如此 将从默认文件组中进行存储页分配、查询等操作。用户还能够 指定默认文件组,原因分析如此 指定默认文件组,则主文件组是默认文件组。

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

  系统数据库存储有关SQL Server的系统信息,它们是SQL Server 60 8管理数据库的最好的方式。原因分析系统数据库遭到破坏,如此 SQL Server将如此 正常启动。在安装SQL Server 60 8时,系统将创建有有好几只 多可见的系统数据库:master、model、msdbtempdb

(1)master数据库蕴含了SQL Server 60 8的登录账号、系统配置、数据库位置及数据库错误信息等,控制用户数据库和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 60 8”,确定并启动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.SQL60 8 \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 60 8的命名规则,最大长度为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,最大大小为60 MB,允许数据库自动增长,增长最好的方式是按10%比例增长。日志文件初始为2 MB,最大可增长到5 MB,按1 MB增长。数据文件和日志文件的存放位置为SQL Server的数据库目录“C:\Program Files\Microsoft SQL Server\MSSQL10.SQL60 8\ 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.SQL60

8\MSSQL\DATA\TEST1.mdf',
        SIZE=5 MB,
        MAXSIZE=60

 MB,
        FILEGROWTH=10%        
    ) 
    LOG ON
    (
        NAME='TEST1_log',
        FILENAME='C:\Program Files\Microsoft SQL Server\MSSQL10.SQL60

8\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%增长;有一有有好几只 多日志文件,大小为60 MB,最大大小为60 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 = 60

 MB,
        MAXSIZE = 60

 MB,
        FILEGROWTH = 10 MB
    );

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

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

(2)有一有有好几只 多文件组名为TEST3Group1,包括文件TEST3_dat2,文件初始大小为10 MB,最大为60 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 = 60

 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,最大为60 MB,增长最好的方式为按10%增长。

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

在“查询分析器”窗口中输入如下Transact-SQL一段话:
ALTER DATABASE TEST1
MODIFY FILE 
(    
  NAME = TEST1_DATA,
  MAXSIZE =60

 MB,    /*将主数据文件的最大大小改为60

 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 = 60

 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 60 8中,创建数据库快照也使用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;