【发布时间】:2018-12-19 17:12:11
【问题描述】:
我对 SQL Server 很陌生(使用 ssms)。我需要一些帮助才能将数据从一个表插入和组织到多个表中(通过 PK/FK 相互连接)。
源表有以下列:
Email, UserName, Phone
这是一张乱七八糟的表格,有很多重复:相同的电子邮件,不同的用户名等等..
我的数据表是:
-
Person- PersonID(PK, int, not null) -
Email- 电子邮件 (nvarchar, null) , PersonID (FK, int, not null) -
Phone- PhoneNumber (int, null) , PersonID (FK, int, not null) -
UserName- UserName (nvarchar, null) , PersonID (FK, int, not null)
对于源表中的每一行,我需要检查该人是否已经存在(通过电子邮件);如果确实存在,我需要添加新数据(如果有),否则我需要创建一个新人并添加数据。
我在这里搜索了一些解决方案并找到了使用 CURSOR 的建议。 我试过了,但是执行起来需要很长时间(几个小时……而且还在继续)
感谢您的帮助!
示例: 来自>
EMAIL | USERNAME | PHONE
------------------------
a@a.a | john | 956165
b@b.b | smith | 123456
c@c.c | bob | 654321
d@d.d | mike | 986514
a@a.a | dan | 658732
e@e.e | dave | 147258
f@f.f | harry | 951962
b@b.b | emmy | 456789
g@g.g | kelly | 789466
h@h.h | kelly | 258369
a@a.a | ana | 852369
到>
EMAIL | PERSONID
----------------
a@a.a | 1
b@b.b | 2
c@c.c | 3
d@d.d | 4
e@e.e | 5
f@f.f | 6
g@g.g | 7
h@h.h | 8
USERNAME | PERSONID
-------------------
john | 1
smith | 2
bob | 3
mike | 4
dan | 1
dave | 5
harry | 6
emmy | 2
kelly | 7
kelly | 8
ana | 1
PHONE | PERSONID
----------------
956165 | 1
123456 | 2
654321 | 3
986514 | 4
658732 | 1
147258 | 5
951962 | 6
456789 | 2
789466 | 7
258369 | 8
852369 | 1
【问题讨论】:
-
评论不用于扩展讨论;这个对话是moved to chat。
标签: sql sql-server ssms