所以我跑了,成为一种如下的问题:
- 我有表A
- 我有表B中有一个外键表A
- 我对表格中的一个触发器,以确保在表格中的每一个项目都有表B中指向它至少有一行(通过外键)。
- 触发为“插入”命令运行。
现在的问题是,当我插入到表A中时,触发器会引发错误,因为表B中没有包含表A中新行的外键的行。表B中的行将在交易结束时插入,但触发器不会给我机会。
那么,什么是一个很好的解决这个问题?有没有办法告诉触发器只有在事务中的最后一条命令执行后才能运行?如何创建SQL Server中的触发器触发之前只权的交易将被提交
1
A
回答
0
如果你需要一个触发条件上表A,但不知道是否有表B中的任何相应的行,不应该将“而不是”触发器使用。这将允许您将行插入到表A.如果在表B中的赛前检查表B,用插入到继续,否则,加行B,然后A,或跳过那不匹配的数据,并向应用程序返回错误。
http://msdn.microsoft.com/en-us/library/ms175521(v=SQL.105).aspx
+0
的问题是,我不能插入到表B中插入表之前A.请记住,在表B中的一列是一个外键表A,它不能被设置到表A中的行插入,并分配一个id,id然后将用于表B中的外键列。 – AxiomaticNexus
+0
您将无法在触发器的范围之外执行所需的操作。您可以使用表A中的代替触发器来执行插入操作,然后使用output子句来加载表B. –
相关问题
- 1. 春之后回复交易提交前触发催促
- 2. 交易和触发器
- 3. 如何在SQL Server 2005中更新触发器之前创建
- 4. 高交易系统中的触发器
- 5. 如何在Oracle数据库中提交“提交前”触发器
- 6. 触发没有交易?
- 7. 触发SQL Server 2005之前
- 8. SQL Server:触发器触发
- 9. SQL Server 2008 R2销售交易触发器
- 10. SQL Server 2012.触发器。如何在创建表时自动创建触发器
- 11. onclick触发提交?
- 12. 在SQL Server中创建触发器
- 13. 如何在T-SQL 2005的删除之前触发触发器?
- 14. 如何在提交之前或之后触发AJAX请求
- 15. 创建只触发特定行的SQL触发器
- 16. Jenkins构建被触发,尽管“不触发构建的提交通知”
- 17. 如何触发TC只建立在特定的提交注释
- 18. postgres - 在事务提交前触发
- 19. TSQL:提交时触发
- 20. 自动提交不会被触发
- 21. 在SQL Server中触发前
- 22. SQL Server 2008 R2创建触发器
- 23. SQL Server创建审计触发器
- 24. 创建历史触发器SQL Server 2012
- 25. 在SQL Server表上创建触发器
- 26. 导致触发的交易的Oracle交易ID
- 27. 提交表单时触发点击事件按钮被触发
- 28. 如何在SQL中创建触发器?
- 29. 如何在sql中创建触发器
- 30. SQL Server:后插入预先提交触发器
为什么你使用触发器来强制执行外键关系?这已经完成** BY **外键给你。你想要的是上的一个触发做需要插入分为B –
移动从表A中的触发器表B –
马克乙 - 触发不是强制执行外键。触发将要强制执行表B中有至少在行引用表A. – AxiomaticNexus