SQL查询更新删除两个表

时间:2016-07-07 19:05:44

标签: sql-server

我有两张桌子: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',....)到存储过程或脚本中来执行它们所有?

0 个答案:

没有答案