我有一个表,其中包含我需要迁移到另一个带有链接表的表的数据。这是作为升级一部分的一次性迁移。
我有一个公司表,其中包含与公司和联系人相关的记录。我想将联系人详细信息迁移到另一个表中,并将新人与链接表链接
考虑我有这个已经填充的表
tbl公司
- 公司编号
- 公司名称
- 注册号
- 联系人姓名
- 联系人姓氏
我想将联系人数据迁移到
tblPerson
- PersonID(身份列)
- 名字
- 姓
并使用生成的标识列并将其插入到链接表中
tbl公司人
- 公司编号
- 个人身份
我已经尝试了几种不同的方法来使用游标和输出变量到临时表中来解决这个问题,但对我来说似乎都不对(或者给我解决方案......)
我得到的最接近的是在 tblPerson 上有一个 companyID 并将 companyId 插入其中并将新的 personId 和 companyId 输出到临时表中。然后循环遍历临时表以创建 tblCompanyContact。
例子
declare @companycontact TABLE (companyId int, PersonId int)
insert into tblPerson
(Forename,
Surname,
CompanyID)
output inserted.CompanyID, INSERTED.PersonID into @companycontact
select
ContactPersonForeName,
ContactPersonSurename,
CompanyID
from tblCompany c
insert into tblCompanyPerson
(CompanyID,
PersonID)
select c.companyId, PersonId from @companycontact c
背景
- 我正在使用 MS SQL Server 2008 R2
- tblPerson 已经填充了数十万条记录。