在默认约束中使用子查询

时间:2017-02-28 13:04:52

标签: sql-server sql-server-2008

以下是我的测试表

create table test
(
Id int,
PatientID int,
StudyID int,
PatientCode char(11),
Active bit
)

示例数据:

enter image description here

期望:

我想为列' PatientCode'创建默认约束。如下所示,以便下一个新行自动获得该值。

alter table test
add constraint new_PatientCode
default (select top 1 substring(PatientCode,1,3) + '-' + Right('00000'+convert(varchar(5),substring(PatientCode,5,5)+1) ,5) from test
order by id desc)

现在当我执行上面的alter table语句时,我收到了以下错误声明。

Msg 1046, Level 15, State 1, Line 31
Subqueries are not allowed in this context. Only scalar expressions are allowed.

我现在的要求是我不想为此目的使用函数或插入触发器。我们还有其他选择吗?

0 个答案:

没有答案