![SQL Server 入门很轻松(微课超值版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/402/32858402/b_32858402.jpg)
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所示。
![](https://epubservercos.yuewen.com/A2A7FE/17640317507890906/epubprivate/OEBPS/Images/Figure-P80_5565.jpg?sign=1739321530-yFcH0Bd3gkJpHVT8y7UMFOvYq4f9qEeC-0-6871d4abccc1a65bb6a20a48a0dabcf0)
图4-31 修改数据表的名称
![](https://epubservercos.yuewen.com/A2A7FE/17640317507890906/epubprivate/OEBPS/Images/Figure-P80_5566.jpg?sign=1739321530-c2W90L9w9PbwUkBJbWdrw1aRFI2bSc1J-0-836be685c34e6fb8e97768821bb4065e)
图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所示。
![](https://epubservercos.yuewen.com/A2A7FE/17640317507890906/epubprivate/OEBPS/Images/Figure-P81_5606.jpg?sign=1739321530-m9XnrdbyNFiC6xnclsEJ2oiOYF0B4bdy-0-7c866ef4095e3e78c4fd59fed6aea3e2)
图4-33 执行SQL语句
![](https://epubservercos.yuewen.com/A2A7FE/17640317507890906/epubprivate/OEBPS/Images/Figure-P81_5607.jpg?sign=1739321530-P7kXsQbrmxKB9YR19YoLWyYN4lBaPtN2-0-fd1539a2b42381d17c5d38d003ba3461)
图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所示。
![](https://epubservercos.yuewen.com/A2A7FE/17640317507890906/epubprivate/OEBPS/Images/Figure-P81_5638.jpg?sign=1739321530-G21qGKUQaLWNk2kx634zQcFS0gqD9SHJ-0-33435f26b1e1787b2543e87a53b35a8a)
图4-35 添加新字段Roomphone
![](https://epubservercos.yuewen.com/A2A7FE/17640317507890906/epubprivate/OEBPS/Images/Figure-P81_5639.jpg?sign=1739321530-6lfE2Fd6lQko0D4VkGjFIXn3E25VkZBJ-0-8f26b1a9c33b37b2ff51c9ac28441c5e)
图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所示。
![](https://epubservercos.yuewen.com/A2A7FE/17640317507890906/epubprivate/OEBPS/Images/Figure-P82_5670.jpg?sign=1739321530-gcMLEluEoe1Ch5UBepAUaI1U6rHm5PzB-0-f24e4f8c6a48beb588308a75d55f41ed)
图4-37 删除字段
![](https://epubservercos.yuewen.com/A2A7FE/17640317507890906/epubprivate/OEBPS/Images/Figure-P82_5671.jpg?sign=1739321530-GcreNUZzkIH0oyZizp1ttiKAdPcsrVYX-0-d6f4bd0a22a86de17d72907574f1255a)
图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所示。
![](https://epubservercos.yuewen.com/A2A7FE/17640317507890906/epubprivate/OEBPS/Images/Figure-P82_5691.jpg?sign=1739321530-NbW2DHJ2g4n3nXhYraQe2g7ysPyZ74yS-0-339bf6bd9ce03913acfde4650b38ea45)
图4-39 修改字段的名称
![](https://epubservercos.yuewen.com/A2A7FE/17640317507890906/epubprivate/OEBPS/Images/Figure-P82_5692.jpg?sign=1739321530-V8qM7P6ZJOOTWPCawfUFDlR40kfnXQoF-0-f1e95a0e1bb48acebfbad8091d34997f)
图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所示。
![](https://epubservercos.yuewen.com/A2A7FE/17640317507890906/epubprivate/OEBPS/Images/Figure-P83_5698.jpg?sign=1739321530-3hxYKwfqWTI0CfYk6ur3H5LTqVV294Jv-0-e96d3de26d13c09feedadc9a6778c31f)
图4-41 重命名状态
![](https://epubservercos.yuewen.com/A2A7FE/17640317507890906/epubprivate/OEBPS/Images/Figure-P83_5699.jpg?sign=1739321530-3MnlCTDmEOEHrPjbYHjMehtBTL9AsKVA-0-2639368442309b704bbbcc4c0d0b267d)
图4-42 数据表的重命名
![](https://epubservercos.yuewen.com/A2A7FE/17640317507890906/epubprivate/OEBPS/Images/Figure-P83_5700.jpg?sign=1739321530-IUW8O2soVqqNOkIfZKuhL1RmaIYVPTWW-0-b448e9f9965fb07141c1a95b0fff3589)
图4-43 选择“设计”命令
(2)弹出的表设计窗口,在其中添加新字段Roomphone,并设置字段数据类型为varchar(10),允许空值,如图4-44所示。
(3)修改完成之后,单击“保存”按钮,保存结果,增加新字段成功,如图4-45所示。
知识扩展:在保存数据表的过程中,如果无法保存增加的表字段,会弹出相应的警告对话框,如图4-46所示。
![](https://epubservercos.yuewen.com/A2A7FE/17640317507890906/epubprivate/OEBPS/Images/Figure-P83_5704.jpg?sign=1739321530-7QW7ZxxZAA7LtAdx6Vsn6NU5MKLRqDzL-0-a0f4d6450407e1e247c48005b084fc1c)
图4-44 增加字段Roomphone
![](https://epubservercos.yuewen.com/A2A7FE/17640317507890906/epubprivate/OEBPS/Images/Figure-P83_5705.jpg?sign=1739321530-UkZ51ncM9un1Q1PAcoSco1Bns5A8Xz3f-0-9098f71d051802130e3b9f18f96453da)
图4-45 增加的新字段
![](https://epubservercos.yuewen.com/A2A7FE/17640317507890906/epubprivate/OEBPS/Images/Figure-P83_5706.jpg?sign=1739321530-b8OHB06NENe7VozbX7eJX7gjHoyldmoE-0-c14c344c3739353f6afb615c7abccfab)
图4-46 警告对话框
要想解决这一问题,我们可以按照如下步骤进行。
(1)选择“工具”→“选项”命令,如图4-47所示。
(2)打开“选项”对话框,选择“设计器”选项,在右侧面板中取消“阻止保存要求重新创建表的更改”复选框,单击“确定”按钮即可,如图4-48所示。
![](https://epubservercos.yuewen.com/A2A7FE/17640317507890906/epubprivate/OEBPS/Images/Figure-P84_5712.jpg?sign=1739321530-yom9sCpW7z5PKG6a1V0GjM2eCfv3V4DO-0-9406e08bfc2d1fb73f3b9b7f5ce21c38)
图4-47 选择“选项”命令
![](https://epubservercos.yuewen.com/A2A7FE/17640317507890906/epubprivate/OEBPS/Images/Figure-P84_5713.jpg?sign=1739321530-7oeEdCYHS8fQpgCV92DdZWwSWaMQQeOh-0-183a9305d8ff2da6af77f2cdaebb9822)
图4-48 “选项”对话框
3. 删除表字段
在表的设计窗口中,每次可以删除表中的一个字段,操作过程比较简单,可以分为如下几步:
(1)打开表设计窗口之后,选中要删除的字段,右击,在弹出的快捷菜单中选择“删除列”命令。例如,这里删除Roominfo表中的Roomface字段,如图4-49所示。
(2)删除字段操作成功后,数据表的结构如图4-50所示。
4. 修改字段的数据类型
当数据表中字段不能满足需要时,可以对其进行修改,修改的内容包括改变字段的数据类型、是否允许空值等,修改字段数据类型可分为如下几步:
(1)在数据表设计窗口中,选择要修改的字段名称,单击数据类型,在弹出的下拉列表框中可以更改字段的数据类型,例如,将Roomphone字段的数据类型由varchar(10)修改为varchar(15),允许为空值,如图4-51所示。
![](https://epubservercos.yuewen.com/A2A7FE/17640317507890906/epubprivate/OEBPS/Images/Figure-P84_5717.jpg?sign=1739321530-zj48JcbVUQRRZvg0HTPwUTdWqTwiS8U8-0-8ae112ffa15f9a0c743e7556ccc6c710)
图4-49 选择“删除列”命令
![](https://epubservercos.yuewen.com/A2A7FE/17640317507890906/epubprivate/OEBPS/Images/Figure-P84_5718.jpg?sign=1739321530-ATryMqxgoRGsM2XpbkXyexNUpxAGGCGq-0-575f428ce1734718053ca3e011667857)
图4-50 删除字段后的效果
![](https://epubservercos.yuewen.com/A2A7FE/17640317507890906/epubprivate/OEBPS/Images/Figure-P84_5719.jpg?sign=1739321530-Rr3vkPvH7kxNzhEMxkGCCzKiOmTzViPe-0-7a7c67664f349bbe37ec3650b31852c8)
图4-51 选择字段的数据类型
(2)单击“保存”按钮,保存修改的内容,然后刷新数据库,即可在“对象资源管理器”窗口中看到修改之后的字段信息,如图4-52所示。
5. 修改字段的名称
数据表中的字段名称如果不能满足需要,可以对其进行修改,修改字段名称可分为如下几步:
(1)在数据表设计窗口中,选择要修改名称的字段,即可进入字段名称修改状态,如图4-53所示。
(2)修改字段的名称,保存修改的内容,然后刷新数据库,即可在“对象资源管理器”窗格中看到修改之后的字段名称,如图4-54所示。
![](https://epubservercos.yuewen.com/A2A7FE/17640317507890906/epubprivate/OEBPS/Images/Figure-P85_5725.jpg?sign=1739321530-G5TsiqWz7pA2NXJmc3ePaDnnIb4R2Mub-0-729bb2a857472985e10103f38d272424)
图4-52 修改后的字段(1)
![](https://epubservercos.yuewen.com/A2A7FE/17640317507890906/epubprivate/OEBPS/Images/Figure-P85_5726.jpg?sign=1739321530-2vqYFrTBC1PLEbioxB1NLTcwDciFEPZb-0-a9e73925cd822d13b8cf234b0e45dc95)
图4-53 选择字段的数据类型
![](https://epubservercos.yuewen.com/A2A7FE/17640317507890906/epubprivate/OEBPS/Images/Figure-P85_5727.jpg?sign=1739321530-C5rfUX8SLc9gK1ilAl6sVroAA5yS5ftl-0-40add6950b9459347fe6bb8665d467f8)
图4-54 修改后的字段(2)
![](https://epubservercos.yuewen.com/A2A7FE/17640317507890906/epubprivate/OEBPS/Images/Figure-P85_23547.jpg?sign=1739321530-gqR1M1RppL4Iz74moHu456DQ7raJpG0E-0-ff3520f3e77c6a99051cfd1884e37746)
微视频