13/02/2008, 13:50
|
| | | Fecha de Ingreso: junio-2006 Ubicación: NA
Mensajes: 105
Antigüedad: 18 años, 6 meses Puntos: 0 | |
Re: Problema de integridad; ke esllave compuesta? 2 o mas llaves primarias en una ta Cita:
Iniciado por iislas La solucion total esta, en que al momento que hagas un INSERT, UPDATE, manejes transacciones EXPLICITAS, esto es BEGIN TRAN, COMMIT TRAN o ROLLBACK TRAN, con eso, te aseguraras que mas de 1 usuario, no registre lo mismo que otro usuario.
Si estas utilizando IDENTITY, te sugiero que hagas caso omiso de @@IDENTITY y utilices la funcion SCOPE_IDENTITY().
Necesitaria mas datos al respecto, esto es lo que puedo comentar. Orales pues deja pruebo eso de indentity aunke si me explican mejor como usarlo bien en base a este sp ke es el pricncipal ke hace el registro se los agradecere mucho
porke mi sp lo tengo asi:
Código:
CREATE PROCEDURE [dbo].[spSetStsEntInd]
(@CveEntInd int, @Sts int output)
AS
DECLARE @TpoFrmInd int
SET @TpoFrmInd = 0
SET @Sts = 0
SELECT @TpoFrmInd = @TpoFrmInd FROM TblEntInd (NOLOCK) WHERE CveEntInd = @CveEntInd
--Indicador-Ente Fiscalizable
IF NOT EXISTS (SELECT CveEntInd FROM TblIndFis (NOLOCK) WHERE CveEntInd = @CveEntInd)
BEGIN
SET @Sts = 2
END
--Indicador basado en fórmula
IF @TpoFrmInd = 1
BEGIN
IF NOT EXISTS ( SELECT CveEntInd FROM TblEntInd (NOLOCK) WHERE CveEntInd = @CveEntInd)
SET @Sts = 4
END
IF @Sts = 0
BEGIN
BEGIN TRAN
UPDATE TblEntInd SET StsEntInd = 1 WHERE CveEntInd = @CveEntInd
IF @@ERROR <> 0
BEGIN
ROLLBACK TRAN
SET @Sts = 5
RETURN -1
END
COMMIT TRAN
END
GO
|