如何在SQL Server中指定条件DEFAULT约束?

时间:2018-08-01 23:30:38

标签: sql sql-server default-constraint

我正在将一列添加为不能为NULL的外键,因此需要具有DEFAULT值。

ALTER TABLE location
ADD [retailer_brand_id] INT NOT NULL DEFAULT (SELECT retailer_id from retailer),
FOREIGN KEY(retailer_brand_id) REFERENCES retailer_brand(retailer_brand_id);

我要实现的是,从retailer_id获取SELECT retailer_id from retailer,如果等于12,则将其设置为0,否则设置为select查询返回的retailer_id

使用上述查询时,出现错误消息

在这种情况下不允许子查询。仅允许标量表达式。

2 个答案:

答案 0 :(得分:1)

我建议改为使用计算列...。因此,您也不必在应用程序逻辑和表定义中都包含此case语句...不要在两个位置都需要它...并且不必担心何时更改零售商编号... calc列会解决这个问题

答案 1 :(得分:0)

我需要类似的功能。计算列对我来说不是一个选项,因为我的值稍后应该由用户更改,所以我在插入时使用触发器。

例如在此处描述:Trigger to update table column after insert?