Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Ajouter une valeur par défaut à une colonne existante basée sur If Then Else sql server 2008

Vous pouvez le faire via la contrainte CHECK,

Vous devrez d'abord créer un tableau,

 create table myTemp1(TempId int not null ,TransCode int,ReasonCode int);

puis ajoutez la contrainte en tant que

créer la 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);

OU j'aime

alter table myTemp1
add constraint check_role CHECK(ReasonCode = (case when (TransCode = 1 AND ReasonCode
                                = NULL) then 99 else ReasonCode end = 1))

démo sur http://sqlfiddle.com/#!3/d633a/1