如何在Azure Data Studio中删除列默认值“NULL”并在同一列上为主键[duplicate]添加新约束

9rbhqvlz  于 2023-06-24  发布在  其他
关注(0)|答案(1)|浏览(110)

此问题已在此处有答案

Altering a column: null to not null(14个回答)
16天前关闭
我在数据库(Azure Data Studio)中有一个表,在编写创建表脚本时,我忘记添加主键约束。为了添加主键约束,我必须改变表,在此之前,必须从我要标记为主键的特定列中删除默认NULL。
我的创建表脚本看起来像这样:Crete Table dbo.employee(employeeID varchar(120)NULL,employeeName varchar(50)NULL,employeePhone Integer NULL)
因此,我需要在Azure Data Studio中的employeeID表上创建一个主键约束,因此我使用了以下通用脚本:
ALTER TABLE [dbo].[employee] ADD PRIMARY KEY CLUSTERED([employeeID ] ASC)WITH(STATISTICS_NORECOMPUTE = OFF,IGNORE_DUP_KEY = OFF,ONLINE = OFF,OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF)ON [PRIMARY] GO
上面的语句给了我预期的错误,因为employeeID被设置为NULL作为默认值。我在改变列时得到的错误是这样的:[在这里输入图像描述][在这里输入图像描述][1]有人能帮助我解决这个问题并在该列上添加主键吗?

afdcj2ne

afdcj2ne1#

主键不能为空值。它用于强制数据完整性并确保表中的每一行都是唯一的。在SQL Server中,可以将主键列定义为NOT NULL,以确保它不允许空值。如果您尝试在主键列中插入一个空值行,将得到一个错误。

ALTER TABLE dbo.employee ALTER COLUMN employeeID varchar(120) NOT NULL;

然后尝试使用ALTER TABLE语句添加主键约束语句employeeID列。

    • 参考:**主键约束的MS文档

相关问题