当我想使用SQL Server 2008 R2的预定义“创建触发器”创建触发器时,我迷路了。您能否给我一个直接的SQL语句,我可以用它创建触发器,并告诉我如何定义AFTER,BEFORE等所有内容?
另外,我如何知道行UPDATED / INSERTED / DELETED,并使用其列值在触发器内进行操作?
数据库是面向集合的,触发器也不例外。当执行给定的操作时,触发器将触发,并且该操作可能会影响多行。因此,问题"Say I want to know the Primary Key of that row"是用词不当。可能插入了多行。
"Say I want to know the Primary Key of that row"
SQL Server为名为AFTERinserted和AFTER的触发器提供了两个特殊的表,deleted它们表示由操作插入或删除的行,其结构与受影响的表相同。更新触发器可能同时填充两者inserted,deleted而插入触发器将仅填充inserted表。
inserted
deleted
来自评论:
但是将根据第二个表中的值来确定电子邮件收件人,其中第二个表中的外键ID位于第一个表中(该表是带有触发器的表
这个问题的答案是使用inserted表格(必须再次假设您可能具有多行)来循环浏览各行并发送电子邮件。但是,我建议不要将电子邮件逻辑置于触发器中。相反,我建议将该逻辑放入存储过程中,然后从中发送电子邮件。
供参考:创建触发器