2016-07-31 54 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