我有 2 张桌子:product
和UnproveProduct
插入产品时,必须为该新产品插入一行到UnprovedProduct
.
哪种解决方案更好,为什么?
- 插入后创建触发器
Product
- 在插入一行时的过程中,
Product
然后也插入一行UnprovedProduct
我有 2 张桌子:product
和UnproveProduct
插入产品时,必须为该新产品插入一行到UnprovedProduct
.
哪种解决方案更好,为什么?
Product
Product
然后也插入一行UnprovedProduct
这是触发器的完美用途。触发器并不那么神秘,也不难预测。它们只是一个工具,它们遵循非常具体的规则。在这种情况下,触发器会在插入记录后立即运行。
您可以扩展插入过程,但下一个人不会使用它,并且您的记录将无法正确插入。
CREATE TRIGGER Insert_UnProvedProduct ON Product AFTER INSERT AS BEGIN
INSERT INTO UnProvedProduct (field1, field2, field3) 选择 field1, field2, field3 FROM INSERTED
结尾
我会选择#2。
为什么?
触发器是出了名的烦人,而且往往会导致意想不到的问题——一方面,你无法真正控制它们被触发的方式和时间......
如果您已经有一个插入数据的过程Products
- 只需扩展它并同时添加行UnprovedProduct
。您可以更好地控制您在过程中所做的事情(与触发器相比)