我正在使用以下代碼在表SP中插入日期值參數。實際上,當我的TVP中存在一條記錄時,它有效,但是當它有多條記錄時,它會產生以下錯誤:存儲過程中的表值參數中的主鍵重複
'違反主鍵約束'PK_ReceivedCash''。無法在對象'Banking.ReceivedCash'中插入重複鍵。該語句已終止。
insert into banking.receivedcash(ReceivedCashID,Date,Time)
select (select isnull(Max(ReceivedCashID),0)+1 from Banking.ReceivedCash),t.Date,t.Time from @TVPCash as t
「Banking.ReceivedCash」上有一個PRIMARY鍵,並且您通過插入一個具有完全相同鍵的行來違反它。解決方案:不要插入具有相同密鑰的行,或者更改密鑰,因爲它不是正確的密鑰。 –
@TT。實際上我嘗試通過此代碼插入唯一值,如您所見 (從Banking.ReceivedCash中選擇isnull(Max(ReceivedCashID),0)+1)但是當插入多條記錄時它不起作用! –
改爲使'ReceivedCashID'成爲[IDENTITY](https://msdn.microsoft.com/en-us/library/ms186775%28v=sql.105%29.aspx)列。 –