2016-01-27 6 views
-1

У меня есть две таблицы tbLicence и tbCompanyAgent, как показано на скриншотеКак обновить другую таблицу, если они связаны?

enter image description here

есть некоторые общие столбцы значения, присутствующие в tbCompanyAgent, как и в tbLicence как LicenseNumber, LicenseIssueDate и LicenseExpirationDate. После некоторых сложных запросов sql и бизнес-требований столбцы StateIssuedLicenseNumber, StateIssuedLicenseIssueDate и StatedIssuedLicenseExpirationDate и столбцы LicenceNumber, DateIssued и ExpirationDate в tbLicence объединены в один столбец LicenseNumber, LicenseIssueDate и LicenseExpirationDate в tbCompanyAgent.

Также значения в StateIssuedLicenseNumber, StateIssuedLicenseIssueDate и StatedIssuedLicenseExpirationDate одинаковы для той же группы записей, идентифицированных идентификатором Column LicenceType.

На самом деле есть один житель вход для всех лицензий, которые хранятся в StateIssuedLicenseNumber, StateIssuedLicenseIssueDate и StatedIssuedLicenseExpirationDate колонн и определенная Resident колонки с 1 значением.

Лицензии не резидентов хранятся в LicenceNumber, DateIssued и ExpirationDate с 0 значением.

Мой вопрос: если пользователь пытается внести некоторые изменения в tbLicence, которые должны быть отражены на tbCompanyAgent. Как я напишу запрос. Пожалуйста помоги!!!

+0

вы можете использовать обновление с присоединиться. – Mukund

+0

Может ли u plz предоставить запрос ... – Nida

ответ

0

Вы можете использовать триггер для этого.

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

Он должен быть включен триггер UPDATE. Строки, которые были обновлены, будут находиться в псевдо-таблице , вставленной.

Здесь вы можете увидеть хороший пример

SQL Triggers - how do I get the updated value?

+0

Невозможно использовать триггеры, потому что мне нужно вставлять лицензии в цикл и для их обновления я должен сначала удалить все лицензии вместе на основе столбца идентификатора группы LicenceType, а затем вставьте их в цикл. Я должен делать это из-за сложного бизнес-требования. Пожалуйста, предоставьте альтернативные запросы ... – Nida

+0

Затем, я бы сказал, вам понадобится триггер AFTER INSERT. Когда он запускается, вам нужно найти подходящую строку из другого столбца (путем объединения таблицы «вставлен» в tbCompanyAgent по некоему уникальному атрибуту). И если вы найдете строку - просто обновите ее новыми значениями). – berliner