SQL Server修改表的列 您所在的位置:网站首页 sql更改列长度 SQL Server修改表的列

SQL Server修改表的列

2024-07-14 12:22| 来源: 网络整理| 查看: 265

在本教程中,将学习如何使用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 实验室设备网 版权所有