请看看他们。有一个表tbCompanyAgent,它也包含来自tbLicence的一些信息。执行复杂的业务操作后,我们能够在tbCompanyAgent中的LicenceTypeNames feild中检测tbLicence中的LicenceTypeId字段(其中LicenceTypes保存为逗号分隔的字符串)。然后在检测到Id之后,我们将其保存在tbCompanyAgent的LicenceTypeId字段中。
如果我们必须更新表tbLicence,我们首先根据LicenceType字段从表中删除记录,该字段表现为Group Id,然后我们使用表tbLicence中其他列的较新值重新插入表中。由于业务需求复杂,我们必须这样做。
现在我的问题是,如果我们必须更新tbLicence,让我们假设我们现在拥有LicenceTypesName列,其中包含新的值,例如" Life,Accident和Health"。然后应该从tbCompanyAgent中删除所有相应的enteries。
我想做类似以下代码行的事情...... 它将首先检查LicenceTypesNames字段或bis blank(第一次插入的情况)中的任何更改,然后执行插入和删除操作。否则它应该只执行简单的插入操作。
Declare @LTN as nvarchar(MAX);
SELECT @LTN = LicenceTypesNames
FROM tbLicence
WHERE LicenceType = @LicenceType
IF @LTN != @LicenceTypesNames
DELETE FROM tbCompanyAgent
WHERE LicenceNumber IN (SELECT DISTINCT LicenceNumber
FROM tbLicence
WHERE LicenceType = @LicenceType)
INSERT INTO [dbo].[tbLicence]( ...)
ELSE
INSERT INTO [dbo].[tbLicence](...)
任何人都可以提供更好的查询方法!请帮忙