数据库的更改:

使用“ALTER DATABASE”命令对数据库修改的语法格式

ALTER DATABASE database_name

 { ADD FILE <filespec> [ , … n]
[ TO FILEGROUP 
{ filegroup_name | DEFAULT} ]         /*在文件组中增加数据文件*/  

| ADD LOG FILE
<filespec> [, … n]            /*增加日志文件*/  

| REMOVE FILE
logical_file_name            /*删除数据文件*/  

| ADD FILEGROUP
filegroup_name            /*增加文件组*/  | 

REMOVE FILEGROUP
filegroup_name        /*删除文件组*/  

| MODIFY FILE
<filespec>                   /*更改文件属性*/  

| MODIFY NAME =
new_dbname             /*数据库更名*/  

| MODIFY FILEGROUP
filegroup_name  

{filegroup_property
| DEFAULT | NAME = new_filegroup_name }  

| COLLATE <
collation_name >      /*指定数据库排序规则*/ }

[;] 

<filespec>::=  (    NAME = logical_file_name       
 [ , NEWNAME =new_logical_name ]      
[ , FILENAME ='os_file_name' ]      
[ , SIZE = size ]      
[ , MAXSIZE = {max_size | UNLIMITED } ]      
[ , FILEGROWTH =growth_increment ]      
[ , OFFLINE ] )

参数说明:

database_name:要修改的数据库的名称。
ADD FILE:将文件添到数据库。
TO FILEGROUP { filegroup_name | DEFAULT }:指定要将指定文件添加到的文件 组。如果指定了 DEFAULT,则将文件添加到当前的默认文件组中。
ADD LOG FILE:将要添加的日志文件添加到指定的数据库。 —

REMOVE FILE logical_file_name:从 SQL Server 的实例中删除逻辑文件说明并删除物理文件。除非文件为空,否则无法删除文件。 logical_file_name :在 SQL Server 中引用文件时所用的逻辑名称。

MODIFY FILE:指定应修改的文件。一次只能更改一个属性。必须在 中指定NAME,以标识要修改的文件。如果指定了 SIZE,那么新大小 必须比文件当前大小要大。
若要修改数据文件或日志文件的逻辑名称,请在 NAME 子句中指定要重命名 的逻辑文件名称,并在 NEWNAME子句中指定文件的新逻辑名称。例如: MODIFY FILE ( NAME = logical_file_name, NEWNAME =
new_logical_name )
若要将数据文件或日志文件移至新位置,请在 NAME 子句中指定当前的逻辑 文件名称,并在 FILENAME子句中指定新路径和操作系统文件名称。例如: MODIFY FILE (NAME= logical_file_name, FILENAME=
’ new_path/os_file_name ’ ) 在移动全文目录时,请只在 FILENAME 子句中指定新路径。不要指定操作系 统文件名称。
ADD FILEGROUP filegroup_name:将文件组添加到数据库。

REMOVE FILEGROUP filegroup_name:从数据库中删除文件组。除非文件组为空,否则无法将其删除。首先通过将所有文件移至另一个文件组来删除文件组中的文 件,如果文件为空,则可通过删除文件实现此目的。

MODIFY NAME = new_database_name:使用指定的名称 new_database_name 重命名 数据库。

MODIFY FILEGROUP filegroup_name, { <filegroup_updatability_option> ,
| DEFAULT, | NAME = new_filegroup_name , }:通过将状态设置为 READ_ONLY 或READ_WRITE、将文件组设置为数据库的默认文件组或者更改文件组名称来修改文 件组。

<filegroup_property > :对文件组设置只读或读/写属性。
DEFAULT:将默认数据库文件组更改为 filegroup_name。数据库中只能有一个文件组作为默认文件组。有关详细信息,请参阅了解文件和文件组。

NAME = new_filegroup_name:将文件组名称更改为 new_filegroup_name。

COLLATE collation_name:指定数据库的排序规则

代码操作:

/*:修改数据库 DB001 现有数据文件的属性,
将主数据文件的最大大小改为 100MB, 增长方
式改为按每次 5MB 增长。 */
alter database DB001
modify file
(
name=DB001_Data,
maxsize=100MB,
filegrowth=5MB
)
go


/*先为数据库 TEST1 增加数据文件 TEST1BAK,然后删除该数据文件*/
alter database DB001
add file
(
name='DB001Bak',
filename='E:\Test\DB001Bak.ndf',
size=10MB,
maxsize=20MB,
filegrowth=5%
)


/*删除数据文件 TEST1BAK */
alter database DB001
remove file DB001Bak
go


/*为数据库 TEST1 添加文件组 FGROUP,
并为此文件组添加两个大小均为 10MB 的数据文件*/
alter database DB001
add filegroup fgroup
go
alter database DB001
add file 
(
 name='DB001_data1',
 filename='E:\Test\DB001_data1.ndf',
 size=10MB,
 maxsize=25MB,
 filegrowth=1MB
),
(
 name='DB001_data2',
 filename='E:\Test\DB001_data2.ndf',
 size=5MB,
 filegrowth=1MB
)
to filegroup fgroup
go

--从数据库中删除文件组
alter database DB001
remove file DB001_data2
go 
alter database DB001
remove file DB001_data1
go 
alter database DB001
remove filegroup fgroup
go

--为数据库 DB001 添加一个日志文件
alter database DB001
add log file
(
 name='DB001_log2',
 filename='E:\Test\DB001_log2.ldf',
 size=10MB,
 maxsize=25MB,
 filegrowth=2MB
)
go


--从数据库 DB001 中删除一个日志文件
alter database DB001
remove file DB001_log2
go
alter database just_DB001
modify name=DB001
go


--删除数据库
drop database DB001
go

Attention:在数据修改操作中必须先删除组内的文件才能删除组,否则无法删除组;在删除文件时,无法删除主文件和主日子文件的。