4.4 修改数据表

数据表创建完毕后,它不是一成不变的,我们可以根据需要修改表中的内容,包括表字段、表名称、数据类型等,可以说,几乎所有的表内容都是可以修改的。

4.4.1 变一变数据表的名称

数据表的表名不能使用ALTER语句来修改,如果想要更改数据表的名称,我们可以使用存储过程sp_rename来进行修改,具体的语法格式如下。

      sp_rename old_tablename,new_tablename;

主要参数介绍如下。

  • old_tablename:数据表原来的名称。
  • new_tablename:数据表修改后的名称。

实例10:修改Hotel数据库中房间信息表Roominfo的名称为new_Roominfo,在“查询编辑器”窗口中输入以下语句。

      USE Hotel;
      sp_rename Roominfo,new_Roominfo;

单击“执行”按钮,即可完成数据表名称的修改操作,如图4-31所示。执行完成之后,刷新数据库列表,将会看到数据表名称更改后的显示效果,如图4-32所示。

图4-31 修改数据表的名称

图4-32 查看修改名称后的数据表

4.4.2 更改表字段的数据类型

使用SQL中的ALTER TABLE语句可以修改数据表中字段的数据类型,具体的语法格式如下。

      ALTER TABLE table_name
      ALTER COLUMN column_name  new_datatype;

主要参数介绍如下。

  • table_name:要修改字段的数据表名称。
  • column_name:要修改的字段的名称。
  • new_datatype:要修改的字段新数据类型。

实例11:在Hotel数据库中,修改房间信息表Roominfo中Roomid字段的数据类型为varchar(10)。在“查询编辑器”窗口中输入以下语句。

      ALTER TABLE Roominfo
      ALTER COLUMN Roomid VARCHAR(10);

单击“执行”按钮,即可完成数据表字段数据类型的修改操作,如图4-33所示。执行完成之后,重新打开Roominfo的表设计窗口,将会看到修改之后数据表字段的数据类型,如图4-34所示。

图4-33 执行SQL语句

图4-34 Roominfo表结构

4.4.3 表字段的添加与删除

表创建完毕后,根据实际需要我们还可以对表字段进行添加或删除操作,下面进行详细介绍。

1. 添加表字段

使用SQL中的ALTER TABLE语句可以在数据表中添加字段,具体的语法格式如下。

      ALTER TABLE table_name
      ADD. column_name datatype;

主要参数介绍如下。

  • table_name:新增加字段的数据表名称。
  • column_name:新增加的字段的名称。
  • datatype:新增加字段的数据类型。

实例12:在Hotel数据库中,需要给表Roominfo添加名称为Roomphone的新字段,字段数据类型为varchar(24),不允许空值。在“查询编辑器”窗口中输入以下语句。

      ALTER TABLE Roominfo
      ADD. Roomphone varchar(24)  NOT NULL

单击“执行”按钮,即可完成数据表字段的添加操作,如图4-35所示。执行完成之后,重新打开Roominfo的表设计窗口,将会看到新添加的数据表字段,如图4-36所示。

图4-35 添加新字段Roomphone

图4-36 添加字段后的表结构

2. 删除表字段

使用SQL中的ALTER TABLE语句可以删除数据表中的字段,具体的语法格式如下。

      ALTER TABLE  table_name
      DROP COLUMN column_name;

主要参数介绍如下。

  • table_name:要删除字段所在数据表的名称。
  • column_name:要删除的字段的名称。

实例13:删除Roominfo表中的Roomphone字段。在“查询编辑器”窗口中输入以下语句。

      ALTER TABLE Roominfo
      DROP COLUMN  Roomphone;

单击“执行”按钮,即可完成数据表字段的删除操作,如图4-37所示。执行完成之后,重新打开Roominfo的表设计窗口,将会看到删除字段后的数据表结构,Roomphone字段已经不存在了,如图4-38所示。

图4-37 删除字段

图4-38 删除字段后的表结构

4.4.4 更改表字段的名称

对于数据表中的字段名称,我们也是可以根据需要进行修改的,但是使用ALTER语句是不行的。不过,使用存储过程sp_rename可以修改表字段的名称,具体的语法格式如下。

      sp_rename 'tablename.columnname','new_columnname';

主要参数介绍如下。

  • tablename.columnname:原来表中的字段名称。不过,表中的字段名一定要加上单引号。
  • new_columnname:新字段的名称,新字段名也要加上单引号,而且不能与表中其他字段的名称重复。

实例14:将数据表Roominfo表中的Roomphone字段名称修改为phone。在“查询编辑器”窗口中输入以下语句。

      sp_rename 'Roominfo.Roomphone','phone';

单击“执行”按钮,即可完成数据表字段名的修改操作,如图4-39所示。执行完成之后,重新打开Roominfo的表设计窗口,将会看到字段名修改后的数据表结构,如图4-40所示。

图4-39 修改字段的名称

图4-40 修改字段名称后的表结构

4.4.5 以图形向导方式修改表

在SQL Server Management Studio中,我们可以以图形向导方式修改数据表,如修改表的名称、添加与删除字段、修改字段的数据类型等。

1. 重命名表名称

(1)登录到SQL Server 2017数据库中,在“对象资源管理器”窗口中选择需要重命名的数据表,如这里选中Roominfo_01数据表,右击,在弹出的快捷菜单中选择“重命名”命令,进入数据表重命名状态,如图4-41所示。

(2)输入新的数据表名称,即可完成数据表的重命名操作,如图4-42所示。

2. 添加表字段

数据表创建完成后,如果字段不能满足需要,可以再根据需要添加字段,例如,在Roominfo数据表中,增加一个新的字段,名称为Roomphone,数据类型为varchar(10),允许空值,具体操作步骤如下:

(1)选中Roominfo数据表,右击,在弹出的快捷菜单中选择“设计”命令,如图4-43所示。

图4-41 重命名状态

图4-42 数据表的重命名

图4-43 选择“设计”命令

(2)弹出的表设计窗口,在其中添加新字段Roomphone,并设置字段数据类型为varchar(10),允许空值,如图4-44所示。

(3)修改完成之后,单击“保存”按钮,保存结果,增加新字段成功,如图4-45所示。

知识扩展:在保存数据表的过程中,如果无法保存增加的表字段,会弹出相应的警告对话框,如图4-46所示。

图4-44 增加字段Roomphone

图4-45 增加的新字段

图4-46 警告对话框

要想解决这一问题,我们可以按照如下步骤进行。

(1)选择“工具”→“选项”命令,如图4-47所示。

(2)打开“选项”对话框,选择“设计器”选项,在右侧面板中取消“阻止保存要求重新创建表的更改”复选框,单击“确定”按钮即可,如图4-48所示。

图4-47 选择“选项”命令

图4-48 “选项”对话框

3. 删除表字段

在表的设计窗口中,每次可以删除表中的一个字段,操作过程比较简单,可以分为如下几步:

(1)打开表设计窗口之后,选中要删除的字段,右击,在弹出的快捷菜单中选择“删除列”命令。例如,这里删除Roominfo表中的Roomface字段,如图4-49所示。

(2)删除字段操作成功后,数据表的结构如图4-50所示。

4. 修改字段的数据类型

当数据表中字段不能满足需要时,可以对其进行修改,修改的内容包括改变字段的数据类型、是否允许空值等,修改字段数据类型可分为如下几步:

(1)在数据表设计窗口中,选择要修改的字段名称,单击数据类型,在弹出的下拉列表框中可以更改字段的数据类型,例如,将Roomphone字段的数据类型由varchar(10)修改为varchar(15),允许为空值,如图4-51所示。

图4-49 选择“删除列”命令

图4-50 删除字段后的效果

图4-51 选择字段的数据类型

(2)单击“保存”按钮,保存修改的内容,然后刷新数据库,即可在“对象资源管理器”窗口中看到修改之后的字段信息,如图4-52所示。

5. 修改字段的名称

数据表中的字段名称如果不能满足需要,可以对其进行修改,修改字段名称可分为如下几步:

(1)在数据表设计窗口中,选择要修改名称的字段,即可进入字段名称修改状态,如图4-53所示。

(2)修改字段的名称,保存修改的内容,然后刷新数据库,即可在“对象资源管理器”窗格中看到修改之后的字段名称,如图4-54所示。

图4-52 修改后的字段(1)

图4-53 选择字段的数据类型

图4-54 修改后的字段(2)

微视频