金陵科技学院实验报告
事务日志文件是用于保存恢复数据库的日志信息的。每个数据库必须至少有一个日志文件,其扩展名为.ldf。 4、文件组
文件组是将多个数据文件集合起来形成一个整体。每个文件组有一个组名。文件组分为主文件组和次文件组。一个文件只能存放在一个文件组中,一个文件组也只能为一个数据库使用。主文件组包含了所有的系统表。当建立数据库时,主文件组包含数据库文件和未指定组的其他文件。事务日志文件不包含在任何文件组中。 四、创建数据库 1、使用向导创建数据库 2、语句方式创建数据库 (1)最简单的语句创建数据库 Create database databaseName (2)一般创建数据库的格式 CREATE DATABASE database_name [ ON
[ < filespec > [ ,...n ] ] [ , < filegroup > [ ,...n ] ] ] ]
[ LOG ON { < filespec > [ ,...n ] } ] [ COLLATE collation_name ] [ FOR LOAD | FOR ATTACH ] < filespec > ::= [ PRIMARY ]
( [ NAME = logical_file_name , ]
FILENAME = 'os_file_name' [ , SIZE = size ]
[ , MAXSIZE = { max_size | UNLIMITED } ]
[ , FILEGROWTH = growth_increment ] ) [ ,...n ] < filegroup > ::=
FILEGROUP filegroup_name < filespec > [ ,...n ] (3)示例
CREATE DATABASE Sales ON
( NAME = Sales_dat,
FILENAME = 'c:\\program files\\microsoft sql server\\mssql\\data\\saledat.mdf', SIZE = 10, MAXSIZE = 50,
4
金陵科技学院实验报告
FILEGROWTH = 5 ) LOG ON
( NAME = 'Sales_log',
FILENAME = 'c:\\program files\\microsoft sql server\\mssql\\data\\salelog.ldf', SIZE = 5MB, MAXSIZE = 25MB, FILEGROWTH = 5MB )
3、请按照要求用工具和SQL语句两种方法创建名为MyDB数据库。 五、维护数据库 1、修改数据库名称
(1)使用ALTER DATABASE语句
ALTER DATABASE databaseName MODIFY NAME=newdatabaseName (2)使用存储过程
EXEC sp_dboption ‘databaseName’,‘SINGLE’,True /*首先将数据库设置为单用户模式*/ EXEC sp_renamedb ‘databaseName’, ‘newdatabaseName’ /*修改数据库名*/ EXEC sp_dboption ‘newdatabaseName’, ‘SINGLE’,False /*取消单用户模式*/ (3)从资源管理器窗口修改数据库名 2、修改数据库大小
(1)设置数据库文件为自动增长方式 (2)直接修改数据库文件的大小 (3)增加辅助数据库文件 (4)示例
CREATE DATABASE Test1 ON (NAME = Test1dat1,
FILENAME = 'c:\\Program Files\\Microsoft SQL Server\\MSSQL\\Data\\t1dat1.ndf', SIZE = 5MB, MAXSIZE = 100MB, FILEGROWTH = 5MB ) GO
ALTER DATABASE Test1 ADD FILE
(NAME = Test1dat2,
FILENAME = 'c:\\Program Files\\Microsoft SQL Server\\MSSQL\\Data\\t1dat2.ndf', SIZE = 5MB, MAXSIZE = 100MB, FILEGROWTH = 5MB )
(5)请参照示例用SQL语句为MyDB数据库增加辅助数据库文件MyDB2,其大小为3MB,最大为10MB,
5
金陵科技学院实验报告
按照10%增长。 3、收缩数据库
(1)设置数据库为自动收缩 (2)手动收缩数据库
(3)使用DBCC SHRINKDATABASE命令收缩数据库
该命令是一种比自动收缩数据库更加灵活的收缩数据库方式。可以对整个数据库进行收缩。 示例:DBCC SHRINKDATABASE (UserDB, 10)
/*该命令将UserDB用户数据库中的文件减小,以使UserDB中的文件有10%的可用空间。*/ (4)请使用该命令将MyDB数据库收缩到有10%的可用空间。 4、删除数据库 (1)使用管理工具 (2)使用T-SQL语句
DROP DATABASE database_name [ ,...n ] 5、查看数据库状态
(1)使用DATABASEPROPERTYEX函数
DATABASEPROPERTYEX(database, property) /*property是表明应返回的选项或属性设置的表达式*/ 示例:SELECT DATABASEPROPERTYEX(‘Mydb’,‘status’) AS ‘当前数据库状态’ (2)使用sys.database_files查看有关数据库文件的信息 (3)使用sys.filegroups查看数据库文件组的信息 (4)使用sys.maste_files查看数据文件的基本信息和状态 6、分离数据库
分离数据库是指数据库从SQL Server实例上删除,但是数据文件、但事务日志文件仍然保持不变。注意:分离数据库如果出现下列情况之一,则不允许分离:
*已复制并发数据库、 *数据库中存在数据库快照、 *数据库处于未知状态。 (1)使用语句分离数据库 示例:exec sp_detach_db MyDB (2)可以使用工具 7、附加数据库
附加数据库时,所有的数据文件(.mdf文件和.ndf文件)都必须是可用的。如果任何数据文件的路径和创建时或上次附加数据库时的路径不同,则必须指定文件的当前路径。在附加数据库的过程中,如果没有日志文件,系统将创建一个新的日志文件。 (1)使用工具附加数据库 (2)使用SQL语句附加数据库 示例:CREATE DATABASE Sales ON ( NAME =‘Sales_dat’,
FILENAME =‘c:\\program files\\microsoft sql server\\mssql\\data\\saledat.mdf' ) LOG ON
6
金陵科技学院实验报告
( NAME =‘Sales_log',
FILENAME =‘c:\\program files\\microsoft sql server\\mssql\\data\\salelog.ldf') FOR ATTACH
(3)请用上述两种方法将MyDB数据库附加到实例中。
五、问题解答及实验结果
六、实验体会和收获
7