我正在使用以下代码在表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)列。 –