SQL脚本从另一个表中输入数据,并在源表中创建一列以链接另一个表
我有一个已经有数据的表SQL脚本从另一个表中输入数据,并在源表中创建一列以链接另一个表,sql,Sql,我有一个已经有数据的表 Table -> Address: AddressID, Address 1, Address 2, email etc... Table -> Branches: BranchesID, StoreName, Address 1, Address 2 现在我需要一个脚本,它可以将所有数据从Branchs表复制到Address表,并在Branchs中创建一个列,该列具有新复制数据的AddressID,以便我可以使用Address表引用Branchs地址 请
Table -> Address:
AddressID, Address 1, Address 2, email etc...
Table -> Branches:
BranchesID, StoreName, Address 1, Address 2
现在我需要一个脚本,它可以将所有数据从Branchs表复制到Address表,并在Branchs中创建一个列,该列具有新复制数据的AddressID,以便我可以使用Address表引用Branchs地址
请帮忙
到目前为止,我已经尝试了这么多
INSERT Address1, Address2, City, ZipCode)
OUTPUT AddressID
INTO Addresses
SELECT Address1, Address2
FROM Baranches;
但我不知道如何将新创建的记录ID从地址表插入Braches表
tahnks首先需要将
AddressId
字段添加到分支中。我不知道您使用的是什么RDBMS,因此这里是MSSQL的一个示例,但它应该适用于所有RDBMS,但需要做一些更改:
ALTER TABLE BRANCHES ADD AddressID bigint;
然后将分支
中的地址插入地址
表中。我猜AddressId
是自动递增的PK<此查询中的code>WHERE
语句允许避免地址重复
insert into ADDRESS (Address1, Address2)
select Address1, Address2
from BRANCHES
where
not exists(select AddressID
from ADDRESS
where Address1=BRANCHES.Address1
and
Address2=BRANCHES.Address2 )
现在我们应该在分支中填写AddressID
字段:
update BRANCHES SET AddressId=(select TOP 1 AddressId from Address where
Address1=BRANCHES.Address1
and
Address2=BRANCHES.Address2 )
我需要创建一个具有AddressID的列。我需要将所有数据从Branchs表复制到address表,并需要这些AddressId这正是我要找的。谢谢,老兄…我会在某个时候尝试一下,如果需要任何更改,请告诉你