
3.2 修改数据库
数据库创建完毕后,它不是一成不变的,我们可以根据自己的需要对数据库进行修改操作,比如修改数据库的名称、修改数据库的初始大小与最大容量值、添加数据文件或文件组、清理无用的数据文件等。
3.2.1 修改数据库的名称
数据库创建完毕后,如果发现数据库的名称不符合需要,可以通过下面两个方法修改。
1. 使用ALTER DATABASE语句修改
具体的语法格式如下。
ALTER DATABASE old_database_name MODIFY NAME=new_database_name
主要参数介绍如下。
- old_database_name:原来数据库的名称。
- new_database_name:指定新的数据库名称。
实例5:将数据库my_db的名称修改为my_dbase,在“查询编辑器”窗口中输入以下语句。

单击“执行”按钮,即可更改数据库的名称,刷新数据库节点,可以看到修改后的新的数据库名称,如图3-16所示。
2. 使用存储过程sp_renamedb更改
使用存储过程sp_renamedb可以更改数据库的名称,最终结果与ALTER DATABASE语句的效果是一样的,不过使用sp_renamedb会更简单一些,具体的语法格式如下。
sp_renamedb old_database_name,new_database_name
主要参数介绍如下。
- old_database_name:原来数据库的名称。
- new_database_name:指定新的数据库名称。
实例6:将数据库my_dbase的名称修改为newmy_dbase,在“查询编辑器”窗口中输入以下语句。

单击“执行”按钮,即可更改数据库的名称,刷新数据库节点,可以看到修改后的新的数据库名称,如图3-17所示。

图3-16 使用ALTER语句更改数据库的名称

图3-17 使用SP_RENAMEDB语句更改数据库的名称
3.2.2 修改数据库的初始大小
数据库的初始大小实际上就是数据库中数据文件的初始大小。使用ALTER DATABASE语句可以修改数据库的初始大小,具体的语法格式如下。

主要参数介绍如下。
- database_name:数据库的名称。
- NAME:数据文件名,也就是要修改的数据文件的名称。
- NEWNAME:更改后的数据文件名称,如果不需要修改数据文件的名称,该语句可以省略。
- FILENAME:设置数据文件保存的位置,如果不需要修改数据文件的保存位置,该语句可以省略。
- SIZE:数据文件的初始大小,如果不需要修改数据文件的初始大小,该语句可以省略。
- MAXSIZE:数据文件的最大值,如果不需要修改数据文件的最大值,该语句可以省略。
- FILEGROWTH:文件自动增长值,如果不需要修改数据文件的自动增长值,该语句可以省略。
实例7:将my_dbase数据库中的主数据文件my_db的初始大小修改为20MB,在“查询编辑器”窗口中输入以下语句。

单击“执行”按钮,my_db的初始大小将被修改为20MB,如图3-18所示。打开my_db数据库的“数据库属性”窗口,在“文件”选项卡中可以看到my_db数据文件的初始大小被修改为20MB,如图3-19所示。

图3-18 输入并执行语句

图3-19 修改数据库的初始大小
注意:修改数据文件的初始大小时,指定的SIZE的大小必须大于或等于当前大小,如果小于,代码将不能被执行,并给出如图3-20所示的错误提示。
知识扩展:数据库的初始大小修改完毕后,除了可以在“数据库属性”窗口中查询修改后效果,还可以使用存储过程sp_helpdb来查看修改后的效果。在“查询编辑器”窗口中输入以下语句。

单击“执行”按钮,即可在“结果”窗格中显示查询结果,这时可以看到my_dbase数据库中的数据文件的初始大小已经更改为20480KB了,如图3-21所示。在这里,读者可能会有一个疑惑,我们设置的明明是20MB,为什么显示的是20480KB?实际上这个结果是正确的,这是因为1MB=1024KB,那么20MB不就是20480KB吗!

图3-20 错误信息提示

图3-21 查询结果
3.2.3 修改数据库的最大容量
使用ALTER DATABASE语句,不仅可以修改数据库的初始大小,还可以修改数据库的最大容量。
实例8:将my_dbase数据库中的主数据文件my_db的最大容量修改为200MB,在“查询编辑器”窗口中输入以下语句。

单击“执行”按钮,即可将my_dbase数据库的最大容量修改为200MB,如图3-22所示。打开“数据库属性”窗口,在“文件”选项卡中可以看到my_db数据文件的自动增长/最大大小被修改为200MB,如图3-23所示。

图3-22 输入并执行语句

图3-23 修改数据库的最大容量

图3-24 错误信息提示
提示:缩减数据库的最大容量与增加数据库容量的方法相同,只是在具体设置数值时,一定要大于数据文件的初始大小,例如my_dbase数据库的数据文件初始大小为20MB,如果修改MAXSIZE的值为19MB,则会出现如图3-24所示的错误提示。
3.2.4 给数据库添加数据文件
除更改数据库的名称、初始大小等属性外,还可以在数据库中添加数据文件、日志文件或文件组。使用ALTER DATABASE语句可以给数据库添加数据文件,具体的语法格式如下。

主要参数介绍如下。
- database_name:数据库的名称。
- ADD FILE:添加数据文件,添加数据文件和创建日志文件的文件结构是一样的。
- ADD LOG FILE:添加日志文件。
- ADD FILEGROUP:添加文件组。
- TO FILEGROUP:为数据文件指定文件组,如果没有指定文件组,默认情况下,数据文件会添加到PRIMARY文件组中。
实例9:给数据库添加数据文件。
在my_dbase数据库中添加一个数据文件sample_db,该数据文件的初始大小为10MB,最大的文件大小为100MB,增长速度为2MB,数据库的存放地址为D盘下的database文件夹。
注意:在向数据库中添加文件前,首先需要通过sp_helpdb来查看一下现有的文件信息,以免在向数据库添加新文件时出现重名现象。打开“查询编辑器”窗口,在其中输入以下语句。

单击“执行”按钮,即可在打开的“结果”窗格中查看当前数据库的数据文件信息,该数据库中保存了一个数据文件my_db和一个日志文件my_db_log,如图3-25所示。
下面开始给my_dbase数据库添加一个数据文件sample_db,打开“查询编辑器”窗口,在其中输入以下语句。

单击“执行”按钮,即可完成数据文件的添加操作,如图3-26所示。在“对象资源管理器”窗口中选择添加数据文件后的数据库,右击,在弹出的快捷菜单中选择“属性”命令,打开“数据库属性”窗口,选择“文件”选项,即可在“数据库文件”列表框中查看添加的数据文件sample_db,如图3-27所示。另外,还可以使用sp_helpdb来查看一下现有的文件信息,数据库当前的数据文件组成如图3-28所示。

图3-25 查看数据文件信息

图3-26 添加数据文件sample_db
实例10:给数据库添加文件组。
在数据库中,除了可以添加数据文件外,还可以添加文件组。在my_dbase数据库中添加一个文件组,名称为my_dbase_group,然后再为文件组添加一个名称为sample_db_addnew的数据文件。
打开“查询编辑器”窗口,在其中输入以下语句。


图3-27 “数据库属性”窗口

图3-28 数据文件组成信息
单击“执行”按钮,即可完成文件组的添加操作,如图3-29所示。在“对象资源管理器”窗口中选择添加数据文件后的数据库,右击,在弹出的快捷菜单中选择“属性”命令,打开“数据库属性”窗口,选择“文件组”选项,即可在右侧窗格中查看添加的文件组my_dbase_group,如图3-30所示。选择“文件”选项,可以在“数据库文件”类别中查看添加的数据文件信息,如图3-31所示。

图3-29 文件组的添加

图3-30 “文件组”选项
另外,还可以使用sp_helpdb来查看一下现有的文件信息,数据库当前的数据文件组成如图3-32所示。从这里可以看出在my_dbase数据库中数据文件列表中多出了一个名称为sample_db_addnew的数据文件,并且该数据文件在my_dbase_group文件组中。

图3-31 “文件”选项

图3-32 使用sp_helpdb查看文件信息
3.2.5 清理数据库中无用的文件
数据库中的文件不能一直添加,对于那些无用的数据文件、日志文件或文件组,我们要及时清理。与如何添加数据文件、日志文件或文件组相比,删除这些文件的操作就比较简单了,具体的语法格式如下。
ALTER DATABASE database_name REMOVE FILE|FILEGROUP file_name|filegroup_name
主要参数介绍如下。
- database_name:要修改数据库的名称。
- REMOVE FILE:移除文件。移除的文件包括数据文件和日志文件。
- REMOVE FILEGROUP:移除数据库中的文件组。注意,要想成功移除文件组,前提是文件组中没有任何文件。
实例11:移除数据库my_dbase中的sample_db_addnew,打开“查询编辑器”窗口,在其中输入以下语句。

单击“执行”按钮,即可将数据文件sample_db_addnew从数据库中移除,如图3-33所示。
实例12:移除数据库my_dbase中的my_dbase_group文件组,打开“查询编辑器”窗口,在其中输入以下语句。

单击“执行”按钮,即可将文件组my_dbase_group从数据库中移除,如图3-34所示。
注意:如果数据文件或文件组下存在有数据信息,那么在执行移除操作时,会出现如图3-35所示的错误提示,这就需要事先把数据文件或文件组清空,然后再执行移除操作。

图3-33 移除数据文件

图3-34 移除文件组

图3-35 错误信息提示
3.2.6 以图形向导方式修改数据库
在SQL Server Management Studio中,我们可以以图形向导方式修改数据库,包括修改数据库的名称、初始大小、最大容量,添加文件或文件组等。
1. 修改数据库的名称
(1)启动SQL Server Management Studio并登录到SQL Server 2017数据库,在“对象资源管理器”窗口中打开“数据库”节点,选择需要更改名称的数据库,右击,在弹出的快捷菜单中选择“重命名”命令,如图3-36所示。
(2)在显示的文本框中输入新的数据库名称newmy_dbase,然后,按Enter键确认或在对象资源管理器中的空白处单击,即可完成名称的更改,如图3-37所示。

图3-36 选择“重命名”命令

图3-37 修改数据库名称
2. 修改数据库的所有者信息
(1)数据库连接成功之后,在“对象资源管理器”窗口中打开“数据库”节点,选择需要修改的数据库,右击,在弹出的快捷菜单中选择“属性”命令,如图3-38所示。
(2)打开“数据库属性”窗口,在“选择页”列表中选择“文件”选项,进入“文件”设置界面,如图3-39所示。

图3-38 选择“属性”命令

图3-39 “数据库属性”窗口
(3)单击“所有者”右侧的“浏览”按钮,打开“选择数据库所有者”对话框,如图3-40所示。
(4)单击“浏览”按钮,打开“查找对象”对话框,在其中选择需要匹配的对象,如图3-41所示。

图3-40 “选择数据库所有者”对话框

图3-41 “查找对象”对话框
(5)单击“确定”按钮,返回到“选择数据库所有者”对话框中,在“输入要选择的对象名称”列表框中可以看到添加的所有者信息,如图3-42所示。
(6)单击“确定”按钮,返回到“数据库属性”窗口中,可以看到数据库的所有者发生了改变,如图3-43所示。

图3-42 输入要选择的对象名称

图3-43 “数据库属性”窗口
3. 修改数据库的初始大小
(1)选择需要修改的数据库,右击,在弹出的快捷菜单中选择“属性”命令,打开“数据库属性”窗口,选择“文件”选项卡,如图3-44所示。
(2)单击my_db行的初始大小列下的文本框,重新输入一个新值,这里输入“25”,单击“确定”按钮,即可完成数据文件大小的修改,如图3-45所示。
提示:也可以单击旁边的两个小箭头按钮,增大或者减小值,修改完成之后,读者可以重新打开newmy_dbase数据库的属性窗口,查看修改结果。
4. 修改数据库的最大容量
(1)选择需要增加数据库容量的数据库,这里选择newmy_dbase数据库,然后打开“数据库属性”窗口,选择左侧的“文件”选项卡,在my_db行中,单击“自动增长”列下面“”按钮,如图3-46所示。
(2)弹出“更改my_db的自动增长设置”对话框,在“最大文件大小”文本框输入值350,增加数据库的增长限制,如图3-47所示。

图3-44 “文件”选项卡

图3-45 修改初始大小为25

图3-46 “数据库属性”窗口

图3-47 “更改my_db的自动增长设置”对话框
(3)单击“确定”按钮,返回到“数据库属性”窗口,即可看到修改后的结果,单击“确定”按钮完成修改,如图3-48所示。

图3-48 修改最大大小
5. 修改数据库的其他属性
(1)在“数据库属性”窗口中,选择“文件组”选项,进入“文件组”设置界面,通过单击“添加文件组”按钮,可以对数据库文件组进行添加操作,如图3-49所示。

图3-49 “文件组”设置界面
(2)选择“选项”选项,在打开的界面中可以对排序规则、恢复模式、兼容性级别等参数进行修改,如图3-50所示。
(3)选择“更改跟踪”选项,单击“更改跟踪”右侧的下拉按钮,可以设置是否对数据库启用更改跟踪,如图3-51所示。
(4)选择“权限”选项,在打开的界面中可以对服务器的名称、数据库的名称、用户或角色进行修改,如图3-52所示。
(5)选择“扩展属性”选项,在打开的界面中可以对数据库的排序规则、属性等参数进行设置,如图3-53所示。

图3-50 “选项”设置界面

图3-51 “更改跟踪”设置界面

图3-52 “权限”设置界面

图3-53 “扩展属性”设置界面

图3-54 “镜像”设置界面
(6)选择“镜像”选项,在打开的界面中可以对数据库镜像进行安全设置,如图3-54所示。
(7)选择“事务日志传送”选项,在打开的界面中可以设置是否启用将此数据库作为日志传送配置中的主数据库,如图3-55所示。
(8)选择“查询存储”选项,在打开的界面中可以设置查询存储保留参数、操作模式等选项,如图3-56所示。

图3-55 “事务日志传送”设置界面

图3-56 “查询存储”设置界面

微视频