我正在尝试创建一个购物车,客户可以选择是否需要交付或存储物品的提货。交货的默认价格为10美元。如何将交货的默认值设置为10美元,但仅限于客户选择交货?
答案 0 :(得分:1)
我认为你的意思是计算列:
CREATE TABLE YourTableName
(
....
, DeliveryCharge AS CASE
WHEN TYPE == 1 THEN 10
WHEN TYPE == 0 THEN NULL
END
)
或者您可以创建一个触发器,在该表上设置INSERT / UPDATE的值:
CREATE TRIGGER TR_YourTableName_DeliveryCharge
ON YourTableName
FOR INSERT, UPDATE
AS
UPDATE YourTableName SET DeliveryCharge = CASE TYPE WHEN 1 THEN 10 ELSE NULL END
go
假设您有一个名为TYPE的列,它指定它是否是一个传递。
答案 1 :(得分:0)
您应该在SQL Server中将默认值设置为10,并在客户选择Delivery时将null(不传递任何内容)传递给SQL Server。
所以逻辑部分将在您的代码中,而其他部分则在SQL Server中。