我在 SQL Server 2008 r2 的游标中有以下代码。
begin
if exists (select * from GestionIOF with (updlock,serializable) where Fecha
=@fechagestion and ID_Desc2 = @id_tipoalarmas and ID_Modulo = @id_modulo)
begin
update GestionIOF set Total = (Select Total from #Paso p where p.Fecha =
@fechagestion and p.Desc2 = @id_tipoalarmas and p.Modulo = @id_modulo),
Frecuencia = (Select Frecuencia from #Paso p where p.Fecha
= @fechagestion and p.Desc2 = @id_tipoalarmas
and p.Modulo = @id_modulo), Gestionado = 'False'
where GestionIOF.Fecha = @fechagestion and GestionIOF.ID_Desc2 =
@id_tipoalarmas and GestionIOF.ID_Modulo = @id_modulo
end
else
begin
INSERT INTO GestionIOF(ID_Area,ID_Controlador ,ID_Modulo
,ID_Desc2,ID_TipoEvento,Total,Frecuencia ,Fecha,Gestionado )
SELECT * FROM #Paso
end
我检查主键是否存在,如果不存在,我将其插入。但我收到以下错误:
男装 2627,Nivel 14,Estado 1,Procedimiento InsertarGestionEC_IOF,Línea 67 Infraccón de la restrictción PRIMARY KEY 'PK_GestionIOF'。没有 se puede insertar una clave duplicada en el objeto 'dbo.GestionIOF'。
也许这是一个错误。有任何想法吗?