自动更改值的默认约束条件
问题描述:
我有一个表ProviderValueCard
。是否可以设置一个默认约束来创建新行,如果列SessionsProgress
> 0,那么自动设置列SurveyCompleted
= 1的条目的值,并在SessionProgress = 0时将其设置为0?自动更改值的默认约束条件
所以psedo:如果SessionsProgress> 0,则SurveyCompleted = 1,否则SurveyCompleted = 0
我上心从marc_s回答这个问题:Automatically inserting datetime with insert
答
感谢abatishchev,这里是什么工作。我无法弄清楚>语法错误:/。我没有任何重要的专栏,所以放弃它并不是问题。
ALTER TABLE ProviderValueCard DROP COLUMN SurveyCompleted
ALTER TABLE ProviderValueCard ADD SurveyCompleted AS CASE [SessionsProgress] WHEN '1' THEN 1
WHEN '2' THEN 1
WHEN '3' THEN 1
WHEN '4' THEN 1
WHEN '5' THEN 1
WHEN '0' THEN 0
END
答
你得到位该行为
declare @bit bit;
set @bit = 0;
print @bit;
set @bit = 1;
print @bit;
set @bit = 2;
print @bit;
set @bit = 2000;
print @bit;
检查出来http://stackoverflow.com/questions/15521546/how-to-create-default-constraint-dependent-other-column- in-sql-server – abatishchev 2014-10-03 17:01:53
@abatishchev - 你打败了我..你也可以使用触发器,但计算似乎是要走的路。 – JiggsJedi 2014-10-03 17:02:46
如果它不起作用,你需要一个触发器(评论是只允许每15秒1)(: – abatishchev 2014-10-03 17:03:01