触发或插入

时间:2012-06-07 14:38:43

标签: sql

我有2个表:productUnproveProduct

插入产品时,必须为新产品插入一行UnprovedProduct

哪种解决方案更好,为什么?

  1. Product
  2. 上插入后创建触发器
  3. 在将行插入Product时的过程中,然后在UnprovedProduct中插入一行

2 个答案:

答案 0 :(得分:1)

我会选择#2。

为什么?

  • 触发器是众所周知的烦恼,并且往往会引起意想不到的问题 - 你无法真正控制它们被解雇的方式和时间......

  • 如果您已经拥有将数据插入Products的过程 - 只需将其扩展并同时将行添加到UnprovedProduct。您可以更好地控制您在程序中执行的操作(与触发器相比)

答案 1 :(得分:1)

它非常适合触发器使用。 触发器不是那么神秘,也不难预测。它们只是一种工具,它们遵循非常具体的规则。在这种情况下,触发器在插入记录后立即运行。

您可以延长插入程序,但下一个人不会使用它,您的记录也无法正确插入。

创建TRIGGER Insert_UnProvedProduct 在产品上 插入后 AS BEGIN

INSERT INTO UnProvedProduct ( field1,field2,field3 ) 选择 field1,field2,field3 FROM INSERTED

END