是否可以更改现有列以接受基于另一个列值的默认值?
例如:
Create table #Temp
(
TempId int not null
,TransCode int --values of 1 / 2 or 3
,ReasonCode int
)
ReasonCode 的默认值基于转码。当 TransCode 为 1 并且 ReasonCode 为 Null 时,则为 99,否则 ReasonCode
如何添加此默认约束?
最佳答案
您可以通过 CHECK 约束来完成,
首先您必须创建表,
create table myTemp1(TempId int not null ,TransCode int,ReasonCode int);
然后添加约束为
创建表 myTemp1(TempId int not null ,TransCode int,ReasonCode int);
alter table myTemp1
add constraint check_role CHECK(case when (TransCode = 1 AND ReasonCode = NULL)
then 99 else ReasonCode end = ReasonCode);
或者喜欢
alter table myTemp1
add constraint check_role CHECK(ReasonCode = (case when (TransCode = 1 AND ReasonCode
= NULL) then 99 else ReasonCode end = 1))
关于sql-server - 基于 If then Else sql server 2008 将默认值添加到现有列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20233840/