默认约束以自动更改值

时间:2014-10-03 16:59:38

标签: sql sql-server tsql

我有一张桌子ProviderValueCard。如果列SessionsProgress是>,是否可以在创建新行时设置默认约束。 0然后自动设置列SurveyCompleted = 1的条目值,如果SessionProgress = 0,则设置为0?

所以psedo:如果SessionsProgress> 0,然后SurveyCompleted = 1否则SurveyCompleted = 0

我从marc_s回答了这个问题的想法:Automatically inserting datetime with insert

2 个答案:

答案 0 :(得分:0)

感谢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

答案 1 :(得分:0)

你用bit

获得了这种行为
  declare @bit bit;
  set @bit = 0;
  print @bit;
  set @bit = 1;
  print @bit;
  set @bit = 2;
  print @bit;
  set @bit = 2000;
  print @bit;