我有两张桌子:person和personlicense。 Person是1:很多人使用PersonLicense,但我有一些是1:1,我需要将它们组合起来。
Person有PersonID和ContactNumber,PersonLicense的LicenseID与PersonID的FK相同。
我查询ContactNumber上的两个连接表,并获取ContactNumber PersonID LicenseID和ExpireDate:
SELECT p.ContactNumber, pl.LicenseID, p.PersonID, pl.ExpireDate
FROM Person as p INNER JOIN PersonLicense as pl
ON p.PersonID=pl.PersonID
WHERE p.ContactNumber ='130012134'
ORDER BY ExpireDate DESC
结果是:
ContactNumber LicenseID PersonID ExpireDate
130012134 21120695 11126209 2017-05-31
130012134 21120058 11115697 NULL
我需要将第二行的PersonID更改为第一行中的PersonID,然后删除与第二行PersonID关联的记录。我目前使用:
UPDATE PersonLicense
SET PersonID='11126209'
WHERE LicenseID='21120058'
然后:
ALTER TABLE PersonLicense NOCHECK CONSTRAINT FK_License_Person
DELETE FROM Person
WHERE PersonID='11115697'
ALTER TABLE PersonLicense CHECK CONSTRAINT FK_License_Person
这样可以正常工作,但我有2,500多个要做...如何将上述步骤使用ContactNumber('n1','n2',....)到存储过程或脚本中来执行它们所有?