SQL Server修改表的列 | 您所在的位置:网站首页 › sql更改列长度 › SQL Server修改表的列 |
在本教程中,将学习如何使用SQL Server ALTER TABLE ALTER COLUMN语句来修改表的列。 SQL Server可对表的列执行以下更改: 修改数据类型改变大小添加NOT NULL约束 1. 修改列的数据类型要修改列的数据类型,请使用以下语句: ALTER TABLE table_name ALTER COLUMN column_name new_data_type(size);新数据类型必须与旧数据类型兼容,否则,如果列具有数据且无法转换,则会出现转换错误。 请看下面示例。 首先,创建一个包含只有一列数据类型为INT的新表: CREATE TABLE t1 (c INT);其次,在表中插入一些行: INSERT INTO t1 VALUES (1), (2), (3);接下来,将列的数据类型从INT修改为VARCHAR: ALTER TABLE t1 ALTER COLUMN c VARCHAR (2);第三,插入带有字符串数据的新行: INSERT INTO t1 VALUES ('@');第四,将列的数据类型从VARCHAR修改回INT: ALTER TABLE t1 ALTER COLUMN c INT;SQL Server发出以下错误: Conversion failed when converting the varchar value '@' to data type int. 2. 更改列的大小以下语句创建一个新表,其中一列的数据类型为VARCHAR(10): CREATE TABLE t2 (c VARCHAR(25));将一些示例数据插入到t2表中: INSERT INTO t2 VALUES ('SQL Server'), ('Yiibai.com'), ('Kaops.com')可以按如下方式增加列的大小,修改为:50: ALTER TABLE t2 ALTER COLUMN c VARCHAR (50);但是,当减小列的大小时,SQL Server会检查现有数据以查看它是否可以根据新大小转换数据。 如果转换失败,SQL Server将终止该语句并发出错误消息。 例如,如果将列c的大小减小为5个字符: ALTER TABLE t2 ALTER COLUMN c VARCHAR (5);SQL Server发出以下错误: String or binary data would be truncated. 3. 向可空列添加NOT NULL约束以下语句创建一个具有可为空列的新表: CREATE TABLE t3 (c VARCHAR(50));以下语句向表中插入一些行: INSERT INTO t3 VALUES ('Nullable column'), (NULL);如果要将NOT NULL约束添加到列c,则必须首先将NULL更新为非null,例如: UPDATE t3 SET c = '' WHERE c IS NULL;然后再添加NOT NULL约束: ALTER TABLE t3 ALTER COLUMN c VARCHAR (20) NOT NULL;在本教程中,学习了如何使用SQL Server ALTER TABLE ALTER COLUMN来修改现有列的某些属性。 上一篇: SQL Server数据定义 下一篇: SQL Server修改数据 |
CopyRight 2018-2019 实验室设备网 版权所有 |