SQL Server ALTER TABLE17 Mar 2025 | 5 分钟阅读 SQL Server 中的 ALTER 命令用于修改现有表。 这些更改可以包括添加列、删除列、更改大小、修改数据类型、添加或删除索引,以及在表定义中添加或删除约束。 它还允许我们重命名和重建分区,以及禁用和启用约束和触发器。 本文将通过各种示例解释表中所有可能的更改。 我们将以名为 'Student' 的表为例进行所有演示。 ![]() SQL Server 添加新列数据库开发人员有时需要向现有表添加新列。 他们可以使用 ALTER TABLE ADD COLUMN 命令 来完成此操作。 它将始终将新列添加到表中的最后一个位置。 添加新列的语法如下所示: 在此语法中,我们将首先指定要修改的表名。 然后,我们将指定要添加到表的新列名。 最后,我们将指定该列的数据类型和约束。 如果要添加多个列,可以使用以下语法: 示例 假设我们要向 Student 表中添加一个新列 'Phone_number'。 我们可以使用以下命令来完成 我们可以使用 SELECT 语句验证表中新插入的列。 见下图,该列已作为表中的最后一列添加 ![]() SQL Server 删除列我们还可以使用 ALTER 命令从表中删除单个或多个列。 SQL Server 提供了 ALTER TABLE DROP COLUMN 语句,用于从表中删除现有列。 为此,我们可以使用以下语法 在此语法中,我们将首先指定要进行修改的表名。 然后,我们将指定在 DROP COLUMN 子句之后要从表中删除的列名。 如果要删除多个列,可以使用以下语法 示例 假设我们要从 Student 表中删除 'Phone_number' 列。 我们可以使用以下命令来完成 我们可以使用以下语句验证是否从表中删除了此列 见下图,phone_number 列已不再在表中可用 ![]() SQL Server 修改列数据类型我们还可以使用 ALTER 命令将列的数据类型更改为指定的表。 SQL Server 提供了 ALTER TABLE ALTER COLUMN 语句来修改列数据类型。 我们可以使用以下语法来完成此操作 在此语法中,我们将首先指定要进行修改的表名。 然后,我们将指定要修改的列名,最后定义其新的数据类型及其大小。 我们必须确保新旧列的数据类型必须兼容。 否则,如果列包含值,SQL Server 将给出转换错误。 示例 我们已经将 'Student' 表的 'Gender' 列的数据类型定义为 'VARCHAR' 且长度为 20。 现在,我们想将其从 VARCHAR 更改为 NVARCHAR,大小为 10。 为此,我们将使用以下语法 我们可以在 SQL Server Management Studio 中通过表设计选项来验证是否已更改此列,如下所示 ![]() 见下图,我们可以看到 Gender 列的数据类型已在表中成功更改 ![]() 添加列约束我们还可以使用 ALTER 命令将约束添加或删除到指定的表中。 SQL Server 提供了 ALTER TABLE ADD CONSTRAINT 语句,用于将约束添加到指定的列。 以下语法说明了这种修改 在此语法中,我们将首先指定要进行修改的表名。 接下来,我们将指定 ADD 关键字后的约束名称。 接下来,指定约束类型,例如 PRIMARY KEY、FOREIGN KEY、UNIQUE、NOT NULL、CHECK 和 DEFAULT,最后定义列名。 示例 假设我们要在 Student 表的 Id 列上添加一个 PRIMARY KEY 约束。 我们可以使用以下语句来完成 成功执行后,我们可以使用 SQL Server Management Studio 中的表设计选项验证是否在 Id 列中添加了主键。 在下图中,我们可以看到主键已成功添加到该列中 ![]() 删除列约束SQL Server 提供了 ALTER TABLE DROP CONSTRAINT 语句,用于从指定的列中删除约束。 以下语法说明了这种修改 在此语法中,我们将首先指定要进行修改的表名。 接下来,我们将指定 DROP CONSTRAINT 关键字后的约束名称。 示例 假设我们要从 Student 表中删除上面在 Id 列上创建的约束。 我们可以使用以下语句来完成 成功执行后,我们可以使用 SQL Server Management Studio 中的表设计选项验证主键是否从 Id 列中删除。 在下图中,我们可以看到主键已成功删除 ![]() 向 NULLABLE 列添加 NOT NULL 约束我们还可以将可空列更改为 NOT NULL 列。 为此,我们首先需要将 NULL 更新为非空,然后将 NOT NULL 约束添加到列中。 示例 Student 表的 Age 列允许我们存储空值。 如果我们要将其从 null 更改为 NOT NULL,则必须首先使用以下语句将 NULL 更新为非空 现在,我们可以使用以下语句添加 NOT NULL 约束 让我们插入一行,而不在 Age 列中包含值 我们将收到以下错误 ![]() 但是,如果我们在 Age 列中插入一个值,它将成功执行 这是输出 ![]() 在本文中,我们学习了 SQL Server 中的 ALTER 命令,可以使用定义表中的各种示例更改现有列的属性。 下一主题在 SQL Server 中查看 |
我们请求您订阅我们的新闻通讯以获取最新更新。