【发布时间】:2020-01-14 13:02:45
【问题描述】:
我有一张表,称为Fruit_Veg_Product_Table,用于包含某些水果和蔬菜库存的特征。
该表有以下列:
Product_ID
Product_Type
Product_Name
Product_Colour
Product_Price
Product_In_Sale
Product_Stock_Level
Product_Height
Product_Width
Product_Depth
Product_Package_Height
Product_Package_Width
Product_Package_Depth
当一个新产品插入到表中时,有时插入的产品没有任何维度(从Product_Height 一直到Product_Package_Depth 的列)。在这种情况下,尺寸输入为 NULL。
我需要一个 SQL Server 触发器,它将尝试插入的所有 NULL 值替换为与表中已存储的产品相对应的值,这些产品与正在输入的产品共享一个公共 Product_Type .
非常感谢任何有关此问题的帮助。
【问题讨论】:
-
如果有多个匹配的产品并且尺寸不匹配怎么办?
-
为什么不首先阻止人们插入
NULL?或者,如果水果有固定尺寸,请将它们存放在其他地方。 -
@GordonLinoff 实际上我可能应该提到这一点,好问题!您可以假设在这种情况下,如果产品共享一个 Product_Type,那么它们的大小都是相同的,我想这会更容易。
-
这看起来像是一个规范化问题。如果可以从产品类型可靠地推断出尺寸,则它们应该在产品类型表中
-
然后把它传给可以的人。如果您可以创建触发器,但无法修复设计,那么问题在于谁能修复设计;从长远来看,触发只会让情况变得更糟。
标签: sql sql-server triggers