4.1.3 修改对象ALTER语句
当数据库结构无法满足需求或者存储空间已经填满时,可以使用ALTER语句对数据库和数据表进行修改。下面将介绍如何使用ALTER语句修改数据库和数据表。
1.修改数据库
修改数据库可以使用ALTER DATABASE语句,其基本语法格式如下:
主要参数介绍如下:
• database_name:要修改的数据库的名称。
• ADD FILE……TO FILEGROUP:添加新数据库文件到指定的文件组中。
• ADD LOG FILE:添加日志文件。
• REMOVE FILE:从SQL Server的实例中删除逻辑文件说明并删除物理文件。除非文件为空,否则无法删除文件。
• MODIFY FILE:指定应修改的文件。一次只能更改一个<filespec>属性。必须在<filespec>中指定NAME,以标识要修改的文件。如果指定了SIZE,那么新大小必须比文件当前大小要大。
• MODIFY NAME:使用指定的名称重命名数据库。
• ADD FILEGROUP:向数据库中添加文件组。
• REMOVE FILEGROUP:从数据库中删除文件组。除非文件组为空,否则无法将其删除。
• MODIFY FILEGROUP:通过将状态设置为READ_ONLY或READ_WRITE,将文件组设置为数据库的默认文件组或者更改文件组名称来修改文件组。
【例4.5】将test_db数据库的名称修改为company,输入语句如下。
ALTER DATABASE test_db MODIFY NAME=company
2.修改表
修改表结构可以在已经定义的表中增加新的字段列或删除多余的字段。实现这些操作可以使用ALTER TABLE语句,其基本语法格式如下:
ALTER TABLE [ database_name . [ schema_name ] . ] table_name { ALTER { [COLUMN column_name type_name [column_constraints] ] [,……n] } | ADD { [ column_name1 typename [column_constraints],[table_constraint] ] [, ……n] } | DROP { [COLUMN column_name1] [, ……n] } }
主要参数介绍如下:
• ALTER:修改字段属性。
• ADD:表示向表中添加新的字段列,后面可以跟多个字段的定义信息,多个字段之间使用逗号隔开。
• DROP:删除表中的字段,可以同时删除多个字段,多个字段之间使用逗号分隔开。
【例4.6】在更改过名称的company数据库中,向tb_emp1数据表中添加名称为birth的字段列,数据类型为date,要求非空,输入语句如下。
USE company GO ALTER TABLE tb_emp1 ADD birth DATE NOT NULL
【例4.7】删除tb_emp1表中的birth字段列,输入语句如下:
USE company GO ALTER TABLE tb_emp1 DROP COLUMN birth