如何将不可空列的 DEFAULT 值设置为 SELECT 查询的 TOP 1 结果?

问题描述 投票:0回答:1

我正在尝试向已存在的表添加一个不可为空的列,并且我在某处读到我需要一个 DEFAULT 值才能执行此操作。 DEFAULT 的值需要等于下面所示的 SELECT 查询的 TOP 1 user_id 结果。我尝试使用变量,但这不起作用。

这是我尝试过的:

DECLARE @latestuserid AS int
SELECT TOP 1 @latestuserid = user_id from Employees ORDER BY user_id DESC
ALTER TABLE Control ADD nextuserid INT NOT NULL DEFAULT (@latestuserid)

但是我收到错误

Variables are not allowed in the ALTER TABLE statement.
如果我不能使用变量,如果我并不总是知道该 SELECT 语句的确切值,我该怎么做?

sql sql-server alter-table
1个回答
0
投票

您可以先将所需的列定义为可为空,然后编写查询来更新这个新列并设置它,设置此列后,您可以将此列的类型更改为不可为空。

© www.soinside.com 2019 - 2024. All rights reserved.