问题:我们说我有2张桌子
EnStudents
PnStudents
具有相同的列
ID, Name
EnStudents
有5行
1 Jeni
2 Maria
3 John
4 Maria
5 Philip
和PNStudents有2行 10杰尼 13约翰
虽然PNStudents
有2行,但在name
列上有唯一键。
现在,当我尝试将ENStudents
中的行插入PNStudents
时,显然会出现错误,指出存在违反唯一键的错误
在发送插入内容之前,我需要检查哪些记录会导致错误,以便我可以使用TSQL更改冲突记录并在冲突行前面添加一些数字
由于
答案 0 :(得分:1)
现在,当我将来自EN学生的记录插入PN学生时,显然会出现错误,说明存在违反唯一密钥的错误..
在发送插入内容之前,我需要检查哪些记录会导致错误
在名称列上执行一个组,它将为您提供欺骗..
Select name,count(*) as cnt
From
ENStudents
group by name
having count(*)>1
您还可以插入如下所示的行,以便它不会违反大小写约束。这使用SQL Server 2008提供的“With Ties Option”
Insert Into pnstudents
select top 1 with ties id,name
from
enstudents
order by
row_number() over (partition by name order by name)