2016-07-31 56 views
-1

问:让我们说我有2个表检查对于约束插入

EnStudents 
PnStudents 

与同列

ID, Name 

EnStudents有5行

1 Jeni 
2 Maria 
3 John 
4 Maria 
5 Philip 

和PNStudents有2排 10 Jeni 13 John

虽然PNStudents有2行,但在name列上有唯一键。

现在,当我尝试从ENStudents行插入PNStudents,这将显着提高一个错误,指出存在违反唯一键

我需要检查哪些记录会造成错误,当插入之前,我送插入,这样我就可以使用T-SQL,增加一些数量在前面冲突行

感谢

+1

你的问题是什么?你遇到了什么错误?你有什么尝试?请阅读以下关于如何在此网站上提出问题的文档:http://stackoverflow.com/help/how-to-ask –

回答

1

现在改变冲突的记录。当我插入记录从ENStudents要PNStudents将Obvio usly引发错误说有违反唯一键的..

我需要检查插入时的记录将导致错误之前,我送插入

通过名字列,这将给做一组你愚弄..

Select name,count(*) as cnt 
From 
ENStudents 
group by name 
having count(*)>1 

您还可以插入行象下面,所以它不会约束的情况下使用violation..This“与领带选项”,可从SQL Server 2008中

Insert Into pnstudents 
select top 1 with ties id,name 
from 
enstudents 
order by 
row_number() over (partition by name order by name) 
+0

以及我的错误我没有详细说明问题,我再次更新了我的问题,谢谢 –

+0

@ KhurramSultan:没有问题,在这里查看并阅读这个链接,你会得到惊人的快速答案,https://spaghettidba.com/2015/04/24/how-to-post-at-sql-question-on-a-public -论坛/ – TheGameiswar