目前我正在制定一项要求,要求将输入记录记录到临时表中。
要求总结如下:
Web服务将发送一个请求,该请求会将记录插入到1级临时表(StagingTable1
)中。
StagingTable1
上的数据库触发器将处理记录的有效性并引发错误
此错误消息被确认为对其他终端系统的Web服务响应。
我的挑战是在另一个临时表StagingTable2
中跟踪这些失败的记录。但是触发器中的RAISERROR
导致整个事务回滚。
如何实现这一目标?
注意:我尝试过临时表,但它不起作用。据我所知,在SQL Server中无法进行Pragma_autonomuos
次事务。
答案 0 :(得分:0)
您可以使触发器将记录放入StagingTable2
- 或者不记录,因此缺少该记录将表明验证失败。您甚至可以将错误描述和行'密钥放入其他表中,以便您始终知道哪些未能通过。
或者,如果您的服务器彼此相距足够远,您可以使用Service Broker。