如果它们相关,如何更新另一个表?

时间:2016-01-27 11:33:03

标签: sql sql-server sql-server-2008

我有两个表tbLicence和tbCompanyAgent,如截图

所示

enter image description here

tbCompanyAgent中存在一些常见列值,如tbLicence中的值,如LicenseNumber,LicenseIssueDate和LicenseExpirationDate。在一些复杂的sql查询和业务需求之后,列号StateIssuedLicenseNumber,StateIssuedLicenseIssueDate和StatedIssuedLicenseExpirationDate以及tbLicence中的LicenceNumber,DateIssued和ExpirationDate列将合并到tbCompanyAgent中的单个列LicenseNumber,LicenseIssueDate和LicenseExpirationDate。

对于由Group Id Column LicenceType标识的同一组记录,StateIssuedLicenseNumber,StateIssuedLicenseIssueDate和StatedIssuedLicenseExpirationDate中的值也相同。

实际上,存储的所有许可证都有一个常驻条目 StateIssuedLicenseNumber,StateIssuedLicenseIssueDate和StatedIssuedLicenseExpirationDate列,由Resident列标识为1。

非居民许可证存储在LicenceNumber,DateIssued和ExpirationDate中,值为0。

我的问题是,如果用户尝试在tbLicence中进行一些应该反映在tbCompanyAgent上的更新。我将如何编写查询。请帮忙!!!

1 个答案:

答案 0 :(得分:0)

您可以使用触发器。

  

https://msdn.microsoft.com/en-us/library/ms189799.aspx

它应该是ON UPDATE触发器。更新的行将在伪表插入

在这里你可以看到一个很好的例子

  

SQL Triggers - how do I get the updated value?