是否可以根据其他列值更改现有列以接受默认值?
例如:
Create table #Temp
(
TempId int not null
,TransCode int --values of 1 / 2 or 3
,ReasonCode int
)
ReasonCode的默认值基于TransCode。当TransCode为1且ReasonCode为Null时,则为99其他ReasonCode
如何添加此默认约束?
答案 0 :(得分:1)
您可以通过CHECK约束
来完成首先,你必须创建表,
create table myTemp1(TempId int not null ,TransCode int,ReasonCode int);
然后将约束添加为
create table 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))
答案 1 :(得分:1)
但Check Constraint只检查您的输入而不是默认值。 这是我完全相同的问题。但是,我研究过计算列可以解决问题。