我有一个数据库标准化,如下图所示。我存储每个帐户的客户,帐户和邮政地址。您可以注意到,客户端 - 帐户关系类型是多对多的,ClientAccount表也是如此。
由于我有一个包含100k帐户记录的数据库,我考虑使用SQL批量复制。我认为我可以使用包含上表中所有字段的阶段表,然后规范化数据。
我的问题是我不知道如何将数据移动到生产表。在批量插入导入后,如何创建存储过程来执行此作业?
PS:该数据库用于启用EF的ASP .Net网站。
答案 0 :(得分:0)
您必须按正确的顺序一次插入一张表
地址 - >帐户 - >客户 - > AccountClient
创建地址:
Insert into Address(data)
Select distinct address_data From temp
帐户
Inser Into Account(account_number, address_id)
Select t.account_number, a.id From temp t
Inner Join Address a on a.data = t.address_data
客户端
Insert into Client(name, client_number)
Select distinctname, client_number From temp
客户帐户 Inser Into ClientAccount(accountId,clientId) 从temp t中选择a.accountId,c.clientId 内部加入客户端c在c.name = t.name和c.client_number = t.client_number上 内部加入帐户a a.account_number = t.account_number
确保: