6.4.1 更改文件及其属性
可以在Enterprise Manager 中利用数据库属性设置更改数据库文件和事务日志文件,也可以用ALTER DATABASE 命令来更改数据库。ALTER DATABASE 命令可以增加或删除数据库中的文件,也可以修改文件的属性。应注意的是只有数据库管理员(Database Administration 简称DBA)或具有CREATE DATABASE 权限的数据库所有者才有权执行此命令。
ALTER DATABASE 命令的语法如下:
各参数说明如下:
- ADD FILE
- TO FILEGROUP
指定要增加文件到哪个文件组.
- ADD LOG FILE
指定要增加的事务日志文件
- REMOVE FILE
从数据库系统表中删除指定文件的定义,并且删除其物理文件。文件只有为空时才能被删除。
- ??ADD FILEGROUPB
指定要增加的文件组
- REMOVE FILEGROUP
从数据库中删除指定文件组的定义,并且删除其包括的所有数据库文件。文件组只有为空时才能被删除。
- MODIFY FILE
修改指定文件的文件名、容量大小、最大容量、文件增容方式等属性。但一次只能修改一个文件的一个属性。使用此选项时应注意,在文件格式filespec 中必须用NAME 明确指定文件的名称:如果文件大小是已经确定了的,那么新定义的size 必须比当前的文件容量大;FILENAME 只能指定在tempdb database 中存在的文件,并且新的文件名只有在SQL Server 重新启动后才发生作用。
- MODIFY FILEGROUP filegroup_name filegroup_property
修改文件组属性filegroup_property filegroup_property 可取值为:
READONLY: 指定文件组为只读主文件组Primary File Group 不能指定为只读。只有对数据库有独占访问权限的用户才可以将一个文件组标志为只读。
READWRITE: 使文件组为可读写。只有对数据库有独占访问权限的用户才可以将一个文件组标志为可读写。
DEFAULT: 指定文件组为默认文件组。一个数据库中只能有一个默认文件组。
例6-8: 添加一个包含两个文件的文件组到mydb 数据库中去.并将此文件组指定为默认文件组。
alter database mydb
add filegroup data4
/* 要首先定义文件组然后才能添加文件到文件组中 */
alter database mydb
add file
( name = mydb_data4,
filename = 'd:\sql data\mydb_data4.ndf',
size = 2mb,
maxsize = 100mb,
filegrowth = 5%),
( name = mydb_data5,
filename = 'd:\sql data\mydb_data5.ndf',
size = 2mb,
maxsize = 50mb,
filegrowth = 5%)
to filegroup data4
alter database mydb
modify filegroup data4 default
运行结果如下
Extending database by 2.00 mb on disk 'mydb_data4'.
Extending database by 2.00 mb on disk 'mydb_data5'.
The filegroup property 'default' has been set.
例6-9 添加两个事务日志文件到mydb 数据库中去
alter database mydb
add log file
( name = mydb_log4,
filename = 'd:\sql data\mydb_log4.ndf',
size = 1mb,
maxsize = 50mb,
filegrowth = 5%),
( name = mydb_log5,
filename = 'd:\sql data\mydb_log5.ndf',
size = 1mb,
maxsize = 50mb,
filegrowth = 5%)go
运行结果如下
Extending database by 1.00 MB on disk 'mydb_Log4'.
Extending database by 1.00 MB on disk 'mydb_Log5'.
例6-10 修改mydb 数据库中的mydb_Data5 文件增容方式为一次增加2MB
alter database mydb
modify file
( name = mydb_log5,
filegrowth = 2mb)
运行结果如下
The command(s) completed successfully.
例6-11 删除mydb 数据库中的事务日志文件mydb_Log5
alter database mydb
remove file mydb_log5
运行结果如下
The file 'mydb_Log5' has been removed.
6.4.2 更改数据库名重命名数据库需要使用系统存储过程Sp_renamedb, 其语法如下:
sp_renamedb [@old_name =] 'old_name', [@new_name =] 'new_name'
例6-12: 更改mydb 数据库的名称为“My DB”。
exec sp_renamedb 'mydb', 'My DB'
运行结果如下
The database name ' My DB ' has been set.
注意:在使用此命令前,应将要改名的数据库的访问选项设为Single user mode,并关闭数据库。在更改数据库名称后、在Enterprise Manager中所看到的仍然是原来的数据库名称,只有选择“Databasee"目录文件夹,再点击工具栏中的“刷新”按钮,刷新界面或在SQL Server重新启动后才会看到更改后的数据库名。别外还应应该的是,数据库不区分大小写。