
- Normalización
- Normalización
- Error -2147221503 [ODBC SQL Server ...
- Sql Server Backups
- sql server
- informe de consumo mensual
- rangos de fecha
- error con instancia en sql server 2005 express ...
- Conexion via Programacion a SQL SERVER 2008 R2
- Exportar datos desde un archivo de Texto a SQL ...

Hola necesito ayuda para evitar Deadlocks con un Stored
Me da un Error en una Linea Condicional (IF EXIST) con un Update.
Adjunto la informacion de una traza y el codigo del SP para ver si me pueden
ayudar en algo, Muchas Gracias de antemano!!!
Deadlock encountered Printing deadlock information
2005-09-08 12:14:09.26 spid4
2005-09-08 12:14:09.26 spid4 Wait-for graph
2005-09-08 12:14:09.26 spid4
2005-09-08 12:14:09.26 spid4 Node:1
2005-09-08 12:14:09.26 spid4 RID: 7:1:2958:53 CleanCnt:2
Mode: X Flags: 0x2
2005-09-08 12:14:09.26 spid4 Grant List 0::
2005-09-08 12:14:09.26 spid4 Owner:0x19585200 Mode: X Flg:0x0
Ref:0 Life:02000000 SPID:54 ECID:0
2005-09-08 12:14:09.26 spid4 SPID: 54 ECID: 0 Statement Type: UPDATE
Line #: 4
2005-09-08 12:14:09.26 spid4 Input Buf: Language Event:
spCalcularPuntaje 3,43,296694
2005-09-08 12:14:09.26 spid4 Requested By:
2005-09-08 12:14:09.26 spid4 ResType:LockOwner Stype:'OR' Mode: U
SPID:53 ECID:0 Ec:(0x19D7F538) Value:0x195827a0 Cost:(0/554)
2005-09-08 12:14:09.26 spid4
2005-09-08 12:14:09.26 spid4 Node:2
2005-09-08 12:14:09.26 spid4 RID: 7:1:4342:0 CleanCnt:2
Mode: X Flags: 0x2
2005-09-08 12:14:09.26 spid4 Grant List 0::
2005-09-08 12:14:09.26 spid4 Owner:0x267302e0 Mode: X Flg:0x0
Ref:0 Life:02000000 SPID:53 ECID:0
2005-09-08 12:14:09.26 spid4 SPID: 53 ECID: 0 Statement Type: UPDATE
Line #: 4
2005-09-08 12:14:09.26 spid4 Input Buf: Language Event:
spCalcularPuntaje 3,43,296675
2005-09-08 12:14:09.26 spid4 Requested By:
2005-09-08 12:14:09.26 spid4 ResType:LockOwner Stype:'OR' Mode: U
SPID:54 ECID:0 Ec:(0x1C639538) Value:0x195851a0 Cost:(0/1CC)
2005-09-08 12:14:09.26 spid4 Victim Resource Owner:
2005-09-08 12:14:09.26 spid4 ResType:LockOwner Stype:'OR' Mode: U
SPID:54 ECID:0 Ec:(0x1C639538) Value:0x195851a0 Cost:(0/1CC)
2005-09-08 12:14:14.26 spid4
Deadlock encountered Printing deadlock information
2005-09-08 12:14:14.26 spid4
2005-09-08 12:14:14.26 spid4 Wait-for graph
2005-09-08 12:14:14.26 spid4
2005-09-08 12:14:14.26 spid4 Node:1
2005-09-08 12:14:14.26 spid4 RID: 7:1:4095:0 CleanCnt:2
Mode: X Flags: 0x2
2005-09-08 12:14:14.26 spid4 Grant List 0::
2005-09-08 12:14:14.26 spid4 Owner:0x19584a80 Mode: X Flg:0x0
Ref:0 Life:02000000 SPID:55 ECID:0
2005-09-08 12:14:14.26 spid4 SPID: 55 ECID: 0 Statement Type: UPDATE
Line #: 4
2005-09-08 12:14:14.26 spid4 Input Buf: Language Event:
spCalcularPuntaje 3,43,276521
2005-09-08 12:14:14.26 spid4 Requested By:
2005-09-08 12:14:14.26 spid4 ResType:LockOwner Stype:'OR' Mode: S
SPID:53 ECID:0 Ec:(0x19D7F538) Value:0x26730340 Cost:(0/5A0)
2005-09-08 12:14:14.26 spid4
2005-09-08 12:14:14.26 spid4 Node:2
2005-09-08 12:14:14.26 spid4 RID: 7:1:4342:0 CleanCnt:2
Mode: X Flags: 0x2
2005-09-08 12:14:14.26 spid4 Grant List 0::
2005-09-08 12:14:14.26 spid4 Owner:0x267302e0 Mode: X Flg:0x0
Ref:0 Life:02000000 SPID:53 ECID:0
2005-09-08 12:14:14.26 spid4 SPID: 53 ECID: 0 Statement Type:
CONDITIONAL Line #: 234
2005-09-08 12:14:14.26 spid4 Input Buf: Language Event:
spCalcularPuntaje 3,43,296675
2005-09-08 12:14:14.26 spid4 Requested By:
2005-09-08 12:14:14.26 spid4 ResType:LockOwner Stype:'OR' Mode: U
SPID:55 ECID:0 Ec:(0x1CE0B538) Value:0x195849a0 Cost:(0/218)
2005-09-08 12:14:14.26 spid4 Victim Resource Owner:
2005-09-08 12:14:14.26 spid4 ResType:LockOwner Stype:'OR' Mode: U
SPID:55 ECID:0 Ec:(0x1CE0B538) Value:0x195849a0 Cost:(0/218)
2005-09-08 12:25:55.47 spid4
Deadlock encountered Printing deadlock information
2005-09-08 12:25:55.47 spid4
2005-09-08 12:25:55.47 spid4 Wait-for graph
2005-09-08 12:25:55.47 spid4
2005-09-08 12:25:55.47 spid4 Node:1
2005-09-08 12:25:55.47 spid4 RID: 7:1:2958:53 CleanCnt:2
Mode: X Flags: 0x2
2005-09-08 12:25:55.47 spid4 Grant List 0::
2005-09-08 12:25:55.47 spid4 Owner:0x19589260 Mode: X Flg:0x0
Ref:0 Life:02000000 SPID:54 ECID:0
2005-09-08 12:25:55.47 spid4 SPID: 54 ECID: 0 Statement Type: SELECT
Line #: 86
2005-09-08 12:25:55.47 spid4 Input Buf: Language Event:
spCalcularPuntaje 3,43,296694
2005-09-08 12:25:55.47 spid4 Requested By:
2005-09-08 12:25:55.47 spid4 ResType:LockOwner Stype:'OR' Mode: U
SPID:53 ECID:0 Ec:(0x19D7F538) Value:0x19588c40 Cost:(0/1CC)
2005-09-08 12:25:55.47 spid4
2005-09-08 12:25:55.47 spid4 Node:2
2005-09-08 12:25:55.47 spid4 PAG: 7:1:63735 CleanCnt:2
Mode: IX Flags: 0x2
2005-09-08 12:25:55.47 spid4 Grant List 0::
2005-09-08 12:25:55.47 spid4 Owner:0x2721e220 Mode: IX Flg:0x0
Ref:1 Life:02000000 SPID:53 ECID:0
2005-09-08 12:25:55.47 spid4 SPID: 53 ECID: 0 Statement Type: UPDATE
Line #: 4
2005-09-08 12:25:55.47 spid4 Input Buf: Language Event:
spCalcularPuntaje 3,43,296675
2005-09-08 12:25:55.47 spid4 Requested By:
2005-09-08 12:25:55.47 spid4 ResType:LockOwner Stype:'OR' Mode: S
SPID:54 ECID:0 Ec:(0x1C639538) Value:0x195893e0 Cost:(0/2C64)
2005-09-08 12:25:55.47 spid4 Victim Resource Owner:
2005-09-08 12:25:55.47 spid4 ResType:LockOwner Stype:'OR' Mode: U
SPID:53 ECID:0 Ec:(0x19D7F538) Value:0x19588c40 Cost:(0/1CC)
2005-09-08 12:29:53.88 backup Database backed up: Database: pregase,
creation date(time): 2005/09/07(13:20:48), pages dumped: 170341, first LSN:
41774:10341:1, last LSN: 41774:10350:1, number of dump devices: 1, device
information: (FILE=1, TYPE=DISK: {'C:\Archivos de programa\Microsoft SQL
Server\MSSQL\BACKUP\Backup20050908'}).
2005-09-08 12:32:23.47 backup Database backed up: Database: pregase,
creation date(time): 2005/09/07(13:20:48), pages dumped: 170341, first LSN:
41774:10353:1, last LSN: 41774:10355:1, number of dump devices: 1, device
information: (FILE=2, TYPE=DISK: {'C:\Archivos de programa\Microsoft SQL
Server\MSSQL\BACKUP\Backup20050908'}).
2005-09-08 12:38:50.10 spid58 Starting up database 'Pregase_Back'.
2005-09-08 12:38:50.10 spid58 Bypassing recovery for database
'Pregase_Back' because it is marked IN LOAD.
2005-09-08 12:38:54.04 spid58 Starting up database 'Pregase_Back'.
2005-09-08 12:38:54.04 spid58 Bypassing recovery for database
'Pregase_Back' because it is marked IN LOAD.
2005-09-08 12:38:55.63 spid58 La recuperación está estableciendo puntos
de comprobación en la base de datos 'Pregase_Back' (9)
2005-09-08 12:38:56.01 spid58 Starting up database 'Pregase_Back'.
2005-09-08 12:38:57.95 backup Database restored: Database: Pregase_Back,
creation date(time): 2005/09/07(13:20:48), first LSN: 41774:10353:1, last
LSN: 41774:10355:1, number of dump devices: 1, device information: (FILE=2,
TYPE=DISK: {'C:\Archivos de programa\Microsoft SQL
Server\MSSQL\BACKUP\Backup20050908'}).
2005-09-08 12:42:57.92 spid4
Deadlock encountered Printing deadlock information
2005-09-08 12:42:57.92 spid4
2005-09-08 12:42:57.92 spid4 Wait-for graph
2005-09-08 12:42:57.92 spid4
2005-09-08 12:42:57.92 spid4 Node:1
2005-09-08 12:42:57.92 spid4 RID: 7:1:2958:53 CleanCnt:2
Mode: X Flags: 0x2
2005-09-08 12:42:57.92 spid4 Grant List 0::
2005-09-08 12:42:57.92 spid4 Owner:0x195bcba0 Mode: X Flg:0x0
Ref:0 Life:02000000 SPID:54 ECID:0
2005-09-08 12:42:57.92 spid4 SPID: 54 ECID: 0 Statement Type: SELECT
Line #: 86
2005-09-08 12:42:57.92 spid4 Input Buf: Language Event:
spCalcularPuntaje 3,43,296694
2005-09-08 12:42:57.92 spid4 Requested By:
2005-09-08 12:42:57.92 spid4 ResType:LockOwner Stype:'OR' Mode: U
SPID:53 ECID:0 Ec:(0x19D7F538) Value:0x267e8da0 Cost:(0/1CC)
2005-09-08 12:42:57.92 spid4
2005-09-08 12:42:57.92 spid4 Node:2
2005-09-08 12:42:57.92 spid4 PAG: 7:1:63735 CleanCnt:2
Mode: IX Flags: 0x2
2005-09-08 12:42:57.92 spid4 Grant List 0::
2005-09-08 12:42:57.92 spid4 Owner:0x267e8fa0 Mode: IX Flg:0x0
Ref:1 Life:02000000 SPID:53 ECID:0
2005-09-08 12:42:57.92 spid4 SPID: 53 ECID: 0 Statement Type: UPDATE
Line #: 4
2005-09-08 12:42:57.92 spid4 Input Buf: Language Event:
spCalcularPuntaje 3,43,296675
2005-09-08 12:42:57.92 spid4 Requested By:
2005-09-08 12:42:57.92 spid4 ResType:LockOwner Stype:'OR' Mode: S
SPID:54 ECID:0 Ec:(0x1C639538) Value:0x267e9840 Cost:(0/2C64)
2005-09-08 12:42:57.92 spid4 Victim Resource Owner:
2005-09-08 12:42:57.92 spid4 ResType:LockOwner Stype:'OR' Mode: U
SPID:53 ECID:0 Ec:(0x19D7F538) Value:0x267e8da0 Cost:(0/1CC)
2005-09-08 12:43:33.43 spid52 Proceso con Id. 54 eliminado por el host
CPE2015, Id. de proceso host 2624.
2005-09-08 12:44:30.41 spid4
CREATE PROCEDURE spCalcularPuntaje
@pOp INT, @pConvocatoria INT, @pAgente INT
, @pCantidad int = NULL
AS
DECLARE @tempFormula VARCHAR(100)
DECLARE @concepto INT
DECLARE @inscripcion INT
DECLARE @error INT
DECLARE @temp12 VARCHAR(100)
DECLARE @tipoConvocatoria INT
DECLARE @tieneRequisitos INT
DECLARE @cargoGenerico INT
DECLARE @escuelaCabecera INT
SET NOCOUNT ON
BEGIN TRANSACTION
SELECT 'OPCION ' + cast(@pOp as varchar)
IF @pOp = 1
BEGIN
DECLARE @agenteNuevo int
CREATE TABLE #tempAgentes (idAgente int)
INSERT INTO #tempAgentes
/*
SELECT distinct IC.agente
FROM tb_InscripcionesConvocatorias IC
where IC.idInscripcionconvocatoria not in (SELECT inscripcion
FROM tb_CalificacionesDeInscripcion)
and IC.convocatoria = @pConvocatoria
order by IC.agente
*/
SELECT DISTINCT agente
FROM tb_InscripcionesConvocatorias IC
WHERE agente not in (select idAgente from tb_AuditoriaClasificacion)
AND convocatoria = @pConvocatoria
DECLARE x_CalculoP CURSOR FOR
SELECT CP.FormulaPuntaje, CP.IDConcepto,
IC.IdInscripcionConvocatoria,IC.agente
, C.TipoConvocatoria, IC.tieneRequisitos,
IC.cargoGenerico,IC.escuelaCabecera
FROM tb_ConceptosDePuntaje CP INNER JOIN tb_TiposDeConvocatorias TC
ON CP.TipoConvocatoria = TC.IdTipoConvocatoria
INNER JOIN tb_Convocatorias C ON C.TipoConvocatoria = TC.IdTipoConvocatoria
INNER JOIN tb_InscripcionesConvocatorias IC ON IC.Convocatoria =
C.IdConvocatoria
WHERE C.IdConvocatoria = @pConvocatoria
AND (CP.FormulaPuntaje IS NOT NULL or CP.FormulaPuntaje <> '')
AND IC.agente in (SELECT TOP 500 idAgente FROM #tempAgentes)
ORDER BY IC.agente,cp.nrodeorden
OPEN x_CalculoP
FETCH NEXT FROM x_CalculoP INTO @tempFormula, @concepto, @inscripcion,
@agenteNuevo, @tipoConvocatoria, @tieneRequisitos, @cargoGenerico,
@escuelaCabecera
WHILE @@FETCH_STATUS = 0
BEGIN
SELECT 'AGENTE ***: ' + cast(@agenteNuevo as varchar)
IF @tieneRequisitos = 1
BEGIN
DECLARE @temp VARCHAR(1000)
SELECT @temp = 'DECLARE @puntaje FLOAT ' + char(10) + 'SET @puntaje = 0 '
+ char(10)
SELECT @temp = @temp + 'EXEC ' +@tempFormula + ' ' + convert(varchar,
@inscripcion) + ',' + convert(varchar, @concepto)+ ', @puntaje output, 0' +
char(10)
IF EXISTS(SELECT * FROM tb_CalificacionesDeInscripcion CI
INNER JOIN tb_InscripcionesConvocatorias IC1
ON IC1.IdInscripcionConvocatoria = CI.Inscripcion
WHERE IC1.Convocatoria = @pConvocatoria and ci.inscripcion =
@inscripcion
and Concepto = @concepto)
BEGIN
SELECT @temp = @temp + 'UPDATE tb_CalificacionesDeInscripcion SET
Calculado=1, CalculadoDefinitivo = 1,Puntaje = ISNULL(@puntaje, 0)' + 'where
Inscripcion = ' + convert(varchar, @inscripcion) + ' and Concepto = ' +
convert(varchar, @concepto)
END
ELSE
BEGIN
SELECT @temp = @temp
+ ' INSERT INTO tb_CalificacionesDeInscripcion(Inscripcion,
Concepto, TipoConvocatoria,Puntaje,Calculado, CalculadoDefinitivo) VALUES(' +
convert(varchar, @inscripcion)
+ ', ' + convert(varchar, @concepto) + ', ' + convert(varchar,
@tipoConvocatoria) + ', ISNULL(@puntaje, 0),1,1)'
END
EXEC(@temp)
END
ELSE --no tiene requisitos para la convocatoria
BEGIN
SELECT 'SIN REQUISITOS'
END
SELECT 'SE EJECUTO ' + cast (@tempFormula as varchar)
FETCH NEXT FROM x_CalculoP INTO @tempFormula, @concepto, @inscripcion,
@agenteNuevo, @tipoConvocatoria,@tieneRequisitos,@cargoGenerico,
@escuelaCabecera
END --del while
CLOSE x_CalculoP
DEALLOCATE x_CalculoP
DROP TABLE #tempAgentes
END
IF @pOp = 3 BEGIN
DECLARE @fechaLimite int
DECLARE x_CalculoP CURSOR FOR
SELECT CP.FormulaPuntaje, CP.IDConcepto, IC.IdInscripcionConvocatoria
,C.TipoConvocatoria, IC.tieneRequisitos, IC.cargoGenerico,
IC.EscuelaCabecera
FROM tb_ConceptosDePuntaje CP
INNER JOIN tb_TiposDeConvocatorias TC
ON CP.TipoConvocatoria = TC.IdTipoConvocatoria
INNER JOIN tb_Convocatorias C
ON C.TipoConvocatoria = TC.IdTipoConvocatoria
INNER JOIN tb_InscripcionesConvocatorias IC
ON IC.Convocatoria = C.IdConvocatoria
WHERE C.IdConvocatoria = @pConvocatoria
AND (CP.FormulaPuntaje IS NOT NULL or CP.FormulaPuntaje <> '')
AND IC.agente = @pAgente
ORDER by cp.nrodeorden
OPEN x_CalculoP
FETCH NEXT FROM x_CalculoP INTO @tempFormula, @concepto, @inscripcion,
@tipoConvocatoria,@tieneRequisitos,@cargoGenerico,@escuelaCabecera
WHILE @@FETCH_STATUS = 0
BEGIN
DECLARE @temp3 VARCHAR(8000)
IF @tieneRequisitos = 1
BEGIN
IF @tipoConvocatoria = 9 --Ingreso a la docencia
BEGIN
IF EXISTS(
SELECT *
FROM tb_PosiblesVacantes PV
WHERE PV.Convocatoria = @pConvocatoria
AND PV.CargoGenerico = @cargoGenerico
AND PV.EscuelaCabecera = @EscuelaCabecera)
BEGIN
SELECT @temp3 = 'DECLARE @puntaje numeric(4,2) ' + char(10) + 'SET
@puntaje = 0 ' + char(10)
SELECT @temp3 = @temp3 + 'EXEC ' + @tempFormula + ' ' +
convert(varchar, @inscripcion) + ','+ convert(varchar, @concepto) + ',
@puntaje output, 0 ' + char(10)
IF EXISTS(
SELECT *
FROM tb_CalificacionesDeInscripcion CI
INNER JOIN tb_InscripcionesConvocatorias IC
ON IC.IdInscripcionConvocatoria = CI.Inscripcion
WHERE IC.Convocatoria = @pConvocatoria
AND CI.inscripcion = @inscripcion
AND Concepto = @concepto)
BEGIN
UPDATE tb_InscripcionesConvocatorias
SET SinVacante9 = 0
WHERE idInscripcionConvocatoria = @inscripcion
SELECT @temp3 = @temp3 + 'UPDATE tb_CalificacionesDeInscripcion
SET Calculado=0, CalculadoDefinitivo = 0,Puntaje = ISNULL(@puntaje, 0)' +
'where Inscripcion = ' + convert(varchar, @inscripcion) + ' and Concepto = '
+ convert(varchar, @concepto
)
EXEC(@temp3)
END
ELSE
BEGIN
SELECT @temp3 = @temp3 + 'INSERT INTO
tb_CalificacionesDeInscripcion(Inscripcion, Concepto, TipoConvocatoria,
Puntaje, Calculado, CalculadoDefinitivo) VALUES(' + convert(varchar,
@inscripcion) + ', ' + convert(varchar, @concepto) + ', '
+ convert (varchar, @tipoConvocatoria) + ', ISNULL(@puntaje,
0),0,0)'
EXEC(@temp3)
END
END
ELSE
BEGIN
SELECT 'SIN VACANTE EN CONVOCATORIA'
IF EXISTS(
SELECT *
FROM tb_CalificacionesDeInscripcion CI
INNER JOIN tb_InscripcionesConvocatorias IC
ON IC.IdInscripcionConvocatoria = CI.Inscripcion
WHERE IC.Convocatoria = @pConvocatoria
AND CI.inscripcion = @inscripcion
AND Concepto = @concepto)
BEGIN
SELECT @temp3 = 'UPDATE tb_CalificacionesDeInscripcion SET
Calculado=0, CalculadoDefinitivo = 0,Puntaje = 0' + 'where Inscripcion = ' +
convert(varchar, @inscripcion) + ' and Concepto = ' + convert(varchar,
@concepto)
END
ELSE
SELECT @temp3 = 'INSERT INTO
tb_CalificacionesDeInscripcion(Inscripcion, Concepto, TipoConvocatoria,
Puntaje, Calculado, CalculadoDefinitivo) VALUES(' + convert(varchar,
@inscripcion) + ', ' + convert(varchar, @concepto)
+ ', ' + convert(varchar,@tipoConvocatoria) + ', 0,0,0)'
EXEC(@temp3)
UPDATE tb_InscripcionesConvocatorias
SET SinVacante9 = 1,
Orden9 = 51
WHERE idInscripcionConvocatoria = @inscripcion
SELECT '***********************'
SELECT sinVacante9
from tb_InscripcionesConvocatorias
where idInscripcionConvocatoria = @inscripcion
END
END
ELSE
BEGIN --tipoconvocatoria <> 9
SELECT @temp3 = 'DECLARE @puntaje numeric(4,2) ' + char(10) + 'SET
@puntaje = 0 ' + char(10)
SELECT @temp3 = @temp3 + 'EXEC ' + @tempFormula + ' ' + convert(varchar,
@inscripcion) + ','+ convert(varchar, @concepto) + ', @puntaje output, 0 '
+ char(10)
IF EXISTS(
SELECT *
FROM tb_CalificacionesDeInscripcion CI
INNER JOIN tb_InscripcionesConvocatorias IC
ON IC.IdInscripcionConvocatoria = CI.Inscripcion
WHERE CI.inscripcion = @inscripcion
AND IC.Convocatoria = @pConvocatoria
AND Concepto = @concepto
)
BEGIN
SELECT @temp3 = @temp3 + 'UPDATE tb_CalificacionesDeInscripcion SET
Calculado=0, CalculadoDefinitivo = 0,Puntaje = ISNULL(@puntaje, 0)' + 'where
Inscripcion = ' + convert(varchar, @inscripcion) + ' and Concepto = ' +
convert(varchar, @concepto)
END
ELSE
SELECT @temp3 = @temp3 + 'INSERT INTO
tb_CalificacionesDeInscripcion(Inscripcion, Concepto, TipoConvocatoria,
Puntaje, Calculado, CalculadoDefinitivo) VALUES(' + convert(varchar,
@inscripcion) + ', ' + convert(varchar, @concepto) + ', ' + convert(
varchar, @tipoConvocatoria) + ', ISNULL(@puntaje, 0),0,0)'
EXEC(@temp3)
END --de tipoconvocatoria <> 9
END --de tiene requisitos
ELSE --No tiene requisitos para la convocatoria
BEGIN
SELECT 'SIN REQUISITOS'
IF EXISTS(
SELECT *
FROM tb_CalificacionesDeInscripcion CI
INNER JOIN tb_InscripcionesConvocatorias IC
ON IC.IdInscripcionConvocatoria = CI.Inscripcion
WHERE IC.Convocatoria = @pConvocatoria
AND CI.inscripcion = @inscripcion
AND Concepto = @concepto)
BEGIN
SELECT @temp3 = 'UPDATE tb_CalificacionesDeInscripcion SET
Calculado=0, CalculadoDefinitivo = 0,Puntaje = 0' + 'where Inscripcion = ' +
convert(varchar, @inscripcion) + ' and Concepto = ' + convert(varchar,
@concepto)
END
ELSE
SELECT @temp3 = 'INSERT INTO
tb_CalificacionesDeInscripcion(Inscripcion, Concepto, TipoConvocatoria,
Puntaje, Calculado, CalculadoDefinitivo) VALUES(' + convert(varchar,
@inscripcion) + ', ' + convert(varchar, @concepto)
+ ', ' + convert(varchar, @tipoConvocatoria) + ', 0,0,0)'
EXEC(@temp3)
UPDATE tb_InscripcionesConvocatorias
SET Orden9 = 50
WHERE idInscripcionConvocatoria = @inscripcion
END
FETCH NEXT FROM x_CalculoP INTO @tempFormula, @Concepto,
@inscripcion,@tipoConvocatoria,@tieneRequisitos,@cargoGenerico,@escuelaCabecera
END--del while
CLOSE x_CalculoP
DEALLOCATE x_CalculoP
END
Salir:
IF @error <> 0 BEGIN
PRINT('ROLLBACK')
ROLLBACK TRANSACTION
END
ELSE BEGIN
PRINT('COMMIT')
/*select *
from tb_CalificacionesDeInscripcion
where inscripcion in (select idInscripcionConvocatoria from
tb_InscripcionesConvocatorias
where agente = 220688
and convocatoria = 44)*/
COMMIT TRANSACTION
END
SET NOCOUNT OFF
Me da un Error en una Linea Condicional (IF EXIST) con un Update.
Adjunto la informacion de una traza y el codigo del SP para ver si me pueden
ayudar en algo, Muchas Gracias de antemano!!!
Deadlock encountered Printing deadlock information
2005-09-08 12:14:09.26 spid4
2005-09-08 12:14:09.26 spid4 Wait-for graph
2005-09-08 12:14:09.26 spid4
2005-09-08 12:14:09.26 spid4 Node:1
2005-09-08 12:14:09.26 spid4 RID: 7:1:2958:53 CleanCnt:2
Mode: X Flags: 0x2
2005-09-08 12:14:09.26 spid4 Grant List 0::
2005-09-08 12:14:09.26 spid4 Owner:0x19585200 Mode: X Flg:0x0
Ref:0 Life:02000000 SPID:54 ECID:0
2005-09-08 12:14:09.26 spid4 SPID: 54 ECID: 0 Statement Type: UPDATE
Line #: 4
2005-09-08 12:14:09.26 spid4 Input Buf: Language Event:
spCalcularPuntaje 3,43,296694
2005-09-08 12:14:09.26 spid4 Requested By:
2005-09-08 12:14:09.26 spid4 ResType:LockOwner Stype:'OR' Mode: U
SPID:53 ECID:0 Ec:(0x19D7F538) Value:0x195827a0 Cost:(0/554)
2005-09-08 12:14:09.26 spid4
2005-09-08 12:14:09.26 spid4 Node:2
2005-09-08 12:14:09.26 spid4 RID: 7:1:4342:0 CleanCnt:2
Mode: X Flags: 0x2
2005-09-08 12:14:09.26 spid4 Grant List 0::
2005-09-08 12:14:09.26 spid4 Owner:0x267302e0 Mode: X Flg:0x0
Ref:0 Life:02000000 SPID:53 ECID:0
2005-09-08 12:14:09.26 spid4 SPID: 53 ECID: 0 Statement Type: UPDATE
Line #: 4
2005-09-08 12:14:09.26 spid4 Input Buf: Language Event:
spCalcularPuntaje 3,43,296675
2005-09-08 12:14:09.26 spid4 Requested By:
2005-09-08 12:14:09.26 spid4 ResType:LockOwner Stype:'OR' Mode: U
SPID:54 ECID:0 Ec:(0x1C639538) Value:0x195851a0 Cost:(0/1CC)
2005-09-08 12:14:09.26 spid4 Victim Resource Owner:
2005-09-08 12:14:09.26 spid4 ResType:LockOwner Stype:'OR' Mode: U
SPID:54 ECID:0 Ec:(0x1C639538) Value:0x195851a0 Cost:(0/1CC)
2005-09-08 12:14:14.26 spid4
Deadlock encountered Printing deadlock information
2005-09-08 12:14:14.26 spid4
2005-09-08 12:14:14.26 spid4 Wait-for graph
2005-09-08 12:14:14.26 spid4
2005-09-08 12:14:14.26 spid4 Node:1
2005-09-08 12:14:14.26 spid4 RID: 7:1:4095:0 CleanCnt:2
Mode: X Flags: 0x2
2005-09-08 12:14:14.26 spid4 Grant List 0::
2005-09-08 12:14:14.26 spid4 Owner:0x19584a80 Mode: X Flg:0x0
Ref:0 Life:02000000 SPID:55 ECID:0
2005-09-08 12:14:14.26 spid4 SPID: 55 ECID: 0 Statement Type: UPDATE
Line #: 4
2005-09-08 12:14:14.26 spid4 Input Buf: Language Event:
spCalcularPuntaje 3,43,276521
2005-09-08 12:14:14.26 spid4 Requested By:
2005-09-08 12:14:14.26 spid4 ResType:LockOwner Stype:'OR' Mode: S
SPID:53 ECID:0 Ec:(0x19D7F538) Value:0x26730340 Cost:(0/5A0)
2005-09-08 12:14:14.26 spid4
2005-09-08 12:14:14.26 spid4 Node:2
2005-09-08 12:14:14.26 spid4 RID: 7:1:4342:0 CleanCnt:2
Mode: X Flags: 0x2
2005-09-08 12:14:14.26 spid4 Grant List 0::
2005-09-08 12:14:14.26 spid4 Owner:0x267302e0 Mode: X Flg:0x0
Ref:0 Life:02000000 SPID:53 ECID:0
2005-09-08 12:14:14.26 spid4 SPID: 53 ECID: 0 Statement Type:
CONDITIONAL Line #: 234
2005-09-08 12:14:14.26 spid4 Input Buf: Language Event:
spCalcularPuntaje 3,43,296675
2005-09-08 12:14:14.26 spid4 Requested By:
2005-09-08 12:14:14.26 spid4 ResType:LockOwner Stype:'OR' Mode: U
SPID:55 ECID:0 Ec:(0x1CE0B538) Value:0x195849a0 Cost:(0/218)
2005-09-08 12:14:14.26 spid4 Victim Resource Owner:
2005-09-08 12:14:14.26 spid4 ResType:LockOwner Stype:'OR' Mode: U
SPID:55 ECID:0 Ec:(0x1CE0B538) Value:0x195849a0 Cost:(0/218)
2005-09-08 12:25:55.47 spid4
Deadlock encountered Printing deadlock information
2005-09-08 12:25:55.47 spid4
2005-09-08 12:25:55.47 spid4 Wait-for graph
2005-09-08 12:25:55.47 spid4
2005-09-08 12:25:55.47 spid4 Node:1
2005-09-08 12:25:55.47 spid4 RID: 7:1:2958:53 CleanCnt:2
Mode: X Flags: 0x2
2005-09-08 12:25:55.47 spid4 Grant List 0::
2005-09-08 12:25:55.47 spid4 Owner:0x19589260 Mode: X Flg:0x0
Ref:0 Life:02000000 SPID:54 ECID:0
2005-09-08 12:25:55.47 spid4 SPID: 54 ECID: 0 Statement Type: SELECT
Line #: 86
2005-09-08 12:25:55.47 spid4 Input Buf: Language Event:
spCalcularPuntaje 3,43,296694
2005-09-08 12:25:55.47 spid4 Requested By:
2005-09-08 12:25:55.47 spid4 ResType:LockOwner Stype:'OR' Mode: U
SPID:53 ECID:0 Ec:(0x19D7F538) Value:0x19588c40 Cost:(0/1CC)
2005-09-08 12:25:55.47 spid4
2005-09-08 12:25:55.47 spid4 Node:2
2005-09-08 12:25:55.47 spid4 PAG: 7:1:63735 CleanCnt:2
Mode: IX Flags: 0x2
2005-09-08 12:25:55.47 spid4 Grant List 0::
2005-09-08 12:25:55.47 spid4 Owner:0x2721e220 Mode: IX Flg:0x0
Ref:1 Life:02000000 SPID:53 ECID:0
2005-09-08 12:25:55.47 spid4 SPID: 53 ECID: 0 Statement Type: UPDATE
Line #: 4
2005-09-08 12:25:55.47 spid4 Input Buf: Language Event:
spCalcularPuntaje 3,43,296675
2005-09-08 12:25:55.47 spid4 Requested By:
2005-09-08 12:25:55.47 spid4 ResType:LockOwner Stype:'OR' Mode: S
SPID:54 ECID:0 Ec:(0x1C639538) Value:0x195893e0 Cost:(0/2C64)
2005-09-08 12:25:55.47 spid4 Victim Resource Owner:
2005-09-08 12:25:55.47 spid4 ResType:LockOwner Stype:'OR' Mode: U
SPID:53 ECID:0 Ec:(0x19D7F538) Value:0x19588c40 Cost:(0/1CC)
2005-09-08 12:29:53.88 backup Database backed up: Database: pregase,
creation date(time): 2005/09/07(13:20:48), pages dumped: 170341, first LSN:
41774:10341:1, last LSN: 41774:10350:1, number of dump devices: 1, device
information: (FILE=1, TYPE=DISK: {'C:\Archivos de programa\Microsoft SQL
Server\MSSQL\BACKUP\Backup20050908'}).
2005-09-08 12:32:23.47 backup Database backed up: Database: pregase,
creation date(time): 2005/09/07(13:20:48), pages dumped: 170341, first LSN:
41774:10353:1, last LSN: 41774:10355:1, number of dump devices: 1, device
information: (FILE=2, TYPE=DISK: {'C:\Archivos de programa\Microsoft SQL
Server\MSSQL\BACKUP\Backup20050908'}).
2005-09-08 12:38:50.10 spid58 Starting up database 'Pregase_Back'.
2005-09-08 12:38:50.10 spid58 Bypassing recovery for database
'Pregase_Back' because it is marked IN LOAD.
2005-09-08 12:38:54.04 spid58 Starting up database 'Pregase_Back'.
2005-09-08 12:38:54.04 spid58 Bypassing recovery for database
'Pregase_Back' because it is marked IN LOAD.
2005-09-08 12:38:55.63 spid58 La recuperación está estableciendo puntos
de comprobación en la base de datos 'Pregase_Back' (9)
2005-09-08 12:38:56.01 spid58 Starting up database 'Pregase_Back'.
2005-09-08 12:38:57.95 backup Database restored: Database: Pregase_Back,
creation date(time): 2005/09/07(13:20:48), first LSN: 41774:10353:1, last
LSN: 41774:10355:1, number of dump devices: 1, device information: (FILE=2,
TYPE=DISK: {'C:\Archivos de programa\Microsoft SQL
Server\MSSQL\BACKUP\Backup20050908'}).
2005-09-08 12:42:57.92 spid4
Deadlock encountered Printing deadlock information
2005-09-08 12:42:57.92 spid4
2005-09-08 12:42:57.92 spid4 Wait-for graph
2005-09-08 12:42:57.92 spid4
2005-09-08 12:42:57.92 spid4 Node:1
2005-09-08 12:42:57.92 spid4 RID: 7:1:2958:53 CleanCnt:2
Mode: X Flags: 0x2
2005-09-08 12:42:57.92 spid4 Grant List 0::
2005-09-08 12:42:57.92 spid4 Owner:0x195bcba0 Mode: X Flg:0x0
Ref:0 Life:02000000 SPID:54 ECID:0
2005-09-08 12:42:57.92 spid4 SPID: 54 ECID: 0 Statement Type: SELECT
Line #: 86
2005-09-08 12:42:57.92 spid4 Input Buf: Language Event:
spCalcularPuntaje 3,43,296694
2005-09-08 12:42:57.92 spid4 Requested By:
2005-09-08 12:42:57.92 spid4 ResType:LockOwner Stype:'OR' Mode: U
SPID:53 ECID:0 Ec:(0x19D7F538) Value:0x267e8da0 Cost:(0/1CC)
2005-09-08 12:42:57.92 spid4
2005-09-08 12:42:57.92 spid4 Node:2
2005-09-08 12:42:57.92 spid4 PAG: 7:1:63735 CleanCnt:2
Mode: IX Flags: 0x2
2005-09-08 12:42:57.92 spid4 Grant List 0::
2005-09-08 12:42:57.92 spid4 Owner:0x267e8fa0 Mode: IX Flg:0x0
Ref:1 Life:02000000 SPID:53 ECID:0
2005-09-08 12:42:57.92 spid4 SPID: 53 ECID: 0 Statement Type: UPDATE
Line #: 4
2005-09-08 12:42:57.92 spid4 Input Buf: Language Event:
spCalcularPuntaje 3,43,296675
2005-09-08 12:42:57.92 spid4 Requested By:
2005-09-08 12:42:57.92 spid4 ResType:LockOwner Stype:'OR' Mode: S
SPID:54 ECID:0 Ec:(0x1C639538) Value:0x267e9840 Cost:(0/2C64)
2005-09-08 12:42:57.92 spid4 Victim Resource Owner:
2005-09-08 12:42:57.92 spid4 ResType:LockOwner Stype:'OR' Mode: U
SPID:53 ECID:0 Ec:(0x19D7F538) Value:0x267e8da0 Cost:(0/1CC)
2005-09-08 12:43:33.43 spid52 Proceso con Id. 54 eliminado por el host
CPE2015, Id. de proceso host 2624.
2005-09-08 12:44:30.41 spid4
CREATE PROCEDURE spCalcularPuntaje
@pOp INT, @pConvocatoria INT, @pAgente INT
, @pCantidad int = NULL
AS
DECLARE @tempFormula VARCHAR(100)
DECLARE @concepto INT
DECLARE @inscripcion INT
DECLARE @error INT
DECLARE @temp12 VARCHAR(100)
DECLARE @tipoConvocatoria INT
DECLARE @tieneRequisitos INT
DECLARE @cargoGenerico INT
DECLARE @escuelaCabecera INT
SET NOCOUNT ON
BEGIN TRANSACTION
SELECT 'OPCION ' + cast(@pOp as varchar)
IF @pOp = 1
BEGIN
DECLARE @agenteNuevo int
CREATE TABLE #tempAgentes (idAgente int)
INSERT INTO #tempAgentes
/*
SELECT distinct IC.agente
FROM tb_InscripcionesConvocatorias IC
where IC.idInscripcionconvocatoria not in (SELECT inscripcion
FROM tb_CalificacionesDeInscripcion)
and IC.convocatoria = @pConvocatoria
order by IC.agente
*/
SELECT DISTINCT agente
FROM tb_InscripcionesConvocatorias IC
WHERE agente not in (select idAgente from tb_AuditoriaClasificacion)
AND convocatoria = @pConvocatoria
DECLARE x_CalculoP CURSOR FOR
SELECT CP.FormulaPuntaje, CP.IDConcepto,
IC.IdInscripcionConvocatoria,IC.agente
, C.TipoConvocatoria, IC.tieneRequisitos,
IC.cargoGenerico,IC.escuelaCabecera
FROM tb_ConceptosDePuntaje CP INNER JOIN tb_TiposDeConvocatorias TC
ON CP.TipoConvocatoria = TC.IdTipoConvocatoria
INNER JOIN tb_Convocatorias C ON C.TipoConvocatoria = TC.IdTipoConvocatoria
INNER JOIN tb_InscripcionesConvocatorias IC ON IC.Convocatoria =
C.IdConvocatoria
WHERE C.IdConvocatoria = @pConvocatoria
AND (CP.FormulaPuntaje IS NOT NULL or CP.FormulaPuntaje <> '')
AND IC.agente in (SELECT TOP 500 idAgente FROM #tempAgentes)
ORDER BY IC.agente,cp.nrodeorden
OPEN x_CalculoP
FETCH NEXT FROM x_CalculoP INTO @tempFormula, @concepto, @inscripcion,
@agenteNuevo, @tipoConvocatoria, @tieneRequisitos, @cargoGenerico,
@escuelaCabecera
WHILE @@FETCH_STATUS = 0
BEGIN
SELECT 'AGENTE ***: ' + cast(@agenteNuevo as varchar)
IF @tieneRequisitos = 1
BEGIN
DECLARE @temp VARCHAR(1000)
SELECT @temp = 'DECLARE @puntaje FLOAT ' + char(10) + 'SET @puntaje = 0 '
+ char(10)
SELECT @temp = @temp + 'EXEC ' +@tempFormula + ' ' + convert(varchar,
@inscripcion) + ',' + convert(varchar, @concepto)+ ', @puntaje output, 0' +
char(10)
IF EXISTS(SELECT * FROM tb_CalificacionesDeInscripcion CI
INNER JOIN tb_InscripcionesConvocatorias IC1
ON IC1.IdInscripcionConvocatoria = CI.Inscripcion
WHERE IC1.Convocatoria = @pConvocatoria and ci.inscripcion =
@inscripcion
and Concepto = @concepto)
BEGIN
SELECT @temp = @temp + 'UPDATE tb_CalificacionesDeInscripcion SET
Calculado=1, CalculadoDefinitivo = 1,Puntaje = ISNULL(@puntaje, 0)' + 'where
Inscripcion = ' + convert(varchar, @inscripcion) + ' and Concepto = ' +
convert(varchar, @concepto)
END
ELSE
BEGIN
SELECT @temp = @temp
+ ' INSERT INTO tb_CalificacionesDeInscripcion(Inscripcion,
Concepto, TipoConvocatoria,Puntaje,Calculado, CalculadoDefinitivo) VALUES(' +
convert(varchar, @inscripcion)
+ ', ' + convert(varchar, @concepto) + ', ' + convert(varchar,
@tipoConvocatoria) + ', ISNULL(@puntaje, 0),1,1)'
END
EXEC(@temp)
END
ELSE --no tiene requisitos para la convocatoria
BEGIN
SELECT 'SIN REQUISITOS'
END
SELECT 'SE EJECUTO ' + cast (@tempFormula as varchar)
FETCH NEXT FROM x_CalculoP INTO @tempFormula, @concepto, @inscripcion,
@agenteNuevo, @tipoConvocatoria,@tieneRequisitos,@cargoGenerico,
@escuelaCabecera
END --del while
CLOSE x_CalculoP
DEALLOCATE x_CalculoP
DROP TABLE #tempAgentes
END
IF @pOp = 3 BEGIN
DECLARE @fechaLimite int
DECLARE x_CalculoP CURSOR FOR
SELECT CP.FormulaPuntaje, CP.IDConcepto, IC.IdInscripcionConvocatoria
,C.TipoConvocatoria, IC.tieneRequisitos, IC.cargoGenerico,
IC.EscuelaCabecera
FROM tb_ConceptosDePuntaje CP
INNER JOIN tb_TiposDeConvocatorias TC
ON CP.TipoConvocatoria = TC.IdTipoConvocatoria
INNER JOIN tb_Convocatorias C
ON C.TipoConvocatoria = TC.IdTipoConvocatoria
INNER JOIN tb_InscripcionesConvocatorias IC
ON IC.Convocatoria = C.IdConvocatoria
WHERE C.IdConvocatoria = @pConvocatoria
AND (CP.FormulaPuntaje IS NOT NULL or CP.FormulaPuntaje <> '')
AND IC.agente = @pAgente
ORDER by cp.nrodeorden
OPEN x_CalculoP
FETCH NEXT FROM x_CalculoP INTO @tempFormula, @concepto, @inscripcion,
@tipoConvocatoria,@tieneRequisitos,@cargoGenerico,@escuelaCabecera
WHILE @@FETCH_STATUS = 0
BEGIN
DECLARE @temp3 VARCHAR(8000)
IF @tieneRequisitos = 1
BEGIN
IF @tipoConvocatoria = 9 --Ingreso a la docencia
BEGIN
IF EXISTS(
SELECT *
FROM tb_PosiblesVacantes PV
WHERE PV.Convocatoria = @pConvocatoria
AND PV.CargoGenerico = @cargoGenerico
AND PV.EscuelaCabecera = @EscuelaCabecera)
BEGIN
SELECT @temp3 = 'DECLARE @puntaje numeric(4,2) ' + char(10) + 'SET
@puntaje = 0 ' + char(10)
SELECT @temp3 = @temp3 + 'EXEC ' + @tempFormula + ' ' +
convert(varchar, @inscripcion) + ','+ convert(varchar, @concepto) + ',
@puntaje output, 0 ' + char(10)
IF EXISTS(
SELECT *
FROM tb_CalificacionesDeInscripcion CI
INNER JOIN tb_InscripcionesConvocatorias IC
ON IC.IdInscripcionConvocatoria = CI.Inscripcion
WHERE IC.Convocatoria = @pConvocatoria
AND CI.inscripcion = @inscripcion
AND Concepto = @concepto)
BEGIN
UPDATE tb_InscripcionesConvocatorias
SET SinVacante9 = 0
WHERE idInscripcionConvocatoria = @inscripcion
SELECT @temp3 = @temp3 + 'UPDATE tb_CalificacionesDeInscripcion
SET Calculado=0, CalculadoDefinitivo = 0,Puntaje = ISNULL(@puntaje, 0)' +
'where Inscripcion = ' + convert(varchar, @inscripcion) + ' and Concepto = '
+ convert(varchar, @concepto
)
EXEC(@temp3)
END
ELSE
BEGIN
SELECT @temp3 = @temp3 + 'INSERT INTO
tb_CalificacionesDeInscripcion(Inscripcion, Concepto, TipoConvocatoria,
Puntaje, Calculado, CalculadoDefinitivo) VALUES(' + convert(varchar,
@inscripcion) + ', ' + convert(varchar, @concepto) + ', '
+ convert (varchar, @tipoConvocatoria) + ', ISNULL(@puntaje,
0),0,0)'
EXEC(@temp3)
END
END
ELSE
BEGIN
SELECT 'SIN VACANTE EN CONVOCATORIA'
IF EXISTS(
SELECT *
FROM tb_CalificacionesDeInscripcion CI
INNER JOIN tb_InscripcionesConvocatorias IC
ON IC.IdInscripcionConvocatoria = CI.Inscripcion
WHERE IC.Convocatoria = @pConvocatoria
AND CI.inscripcion = @inscripcion
AND Concepto = @concepto)
BEGIN
SELECT @temp3 = 'UPDATE tb_CalificacionesDeInscripcion SET
Calculado=0, CalculadoDefinitivo = 0,Puntaje = 0' + 'where Inscripcion = ' +
convert(varchar, @inscripcion) + ' and Concepto = ' + convert(varchar,
@concepto)
END
ELSE
SELECT @temp3 = 'INSERT INTO
tb_CalificacionesDeInscripcion(Inscripcion, Concepto, TipoConvocatoria,
Puntaje, Calculado, CalculadoDefinitivo) VALUES(' + convert(varchar,
@inscripcion) + ', ' + convert(varchar, @concepto)
+ ', ' + convert(varchar,@tipoConvocatoria) + ', 0,0,0)'
EXEC(@temp3)
UPDATE tb_InscripcionesConvocatorias
SET SinVacante9 = 1,
Orden9 = 51
WHERE idInscripcionConvocatoria = @inscripcion
SELECT '***********************'
SELECT sinVacante9
from tb_InscripcionesConvocatorias
where idInscripcionConvocatoria = @inscripcion
END
END
ELSE
BEGIN --tipoconvocatoria <> 9
SELECT @temp3 = 'DECLARE @puntaje numeric(4,2) ' + char(10) + 'SET
@puntaje = 0 ' + char(10)
SELECT @temp3 = @temp3 + 'EXEC ' + @tempFormula + ' ' + convert(varchar,
@inscripcion) + ','+ convert(varchar, @concepto) + ', @puntaje output, 0 '
+ char(10)
IF EXISTS(
SELECT *
FROM tb_CalificacionesDeInscripcion CI
INNER JOIN tb_InscripcionesConvocatorias IC
ON IC.IdInscripcionConvocatoria = CI.Inscripcion
WHERE CI.inscripcion = @inscripcion
AND IC.Convocatoria = @pConvocatoria
AND Concepto = @concepto
)
BEGIN
SELECT @temp3 = @temp3 + 'UPDATE tb_CalificacionesDeInscripcion SET
Calculado=0, CalculadoDefinitivo = 0,Puntaje = ISNULL(@puntaje, 0)' + 'where
Inscripcion = ' + convert(varchar, @inscripcion) + ' and Concepto = ' +
convert(varchar, @concepto)
END
ELSE
SELECT @temp3 = @temp3 + 'INSERT INTO
tb_CalificacionesDeInscripcion(Inscripcion, Concepto, TipoConvocatoria,
Puntaje, Calculado, CalculadoDefinitivo) VALUES(' + convert(varchar,
@inscripcion) + ', ' + convert(varchar, @concepto) + ', ' + convert(
varchar, @tipoConvocatoria) + ', ISNULL(@puntaje, 0),0,0)'
EXEC(@temp3)
END --de tipoconvocatoria <> 9
END --de tiene requisitos
ELSE --No tiene requisitos para la convocatoria
BEGIN
SELECT 'SIN REQUISITOS'
IF EXISTS(
SELECT *
FROM tb_CalificacionesDeInscripcion CI
INNER JOIN tb_InscripcionesConvocatorias IC
ON IC.IdInscripcionConvocatoria = CI.Inscripcion
WHERE IC.Convocatoria = @pConvocatoria
AND CI.inscripcion = @inscripcion
AND Concepto = @concepto)
BEGIN
SELECT @temp3 = 'UPDATE tb_CalificacionesDeInscripcion SET
Calculado=0, CalculadoDefinitivo = 0,Puntaje = 0' + 'where Inscripcion = ' +
convert(varchar, @inscripcion) + ' and Concepto = ' + convert(varchar,
@concepto)
END
ELSE
SELECT @temp3 = 'INSERT INTO
tb_CalificacionesDeInscripcion(Inscripcion, Concepto, TipoConvocatoria,
Puntaje, Calculado, CalculadoDefinitivo) VALUES(' + convert(varchar,
@inscripcion) + ', ' + convert(varchar, @concepto)
+ ', ' + convert(varchar, @tipoConvocatoria) + ', 0,0,0)'
EXEC(@temp3)
UPDATE tb_InscripcionesConvocatorias
SET Orden9 = 50
WHERE idInscripcionConvocatoria = @inscripcion
END
FETCH NEXT FROM x_CalculoP INTO @tempFormula, @Concepto,
@inscripcion,@tipoConvocatoria,@tieneRequisitos,@cargoGenerico,@escuelaCabecera
END--del while
CLOSE x_CalculoP
DEALLOCATE x_CalculoP
END
Salir:
IF @error <> 0 BEGIN
PRINT('ROLLBACK')
ROLLBACK TRANSACTION
END
ELSE BEGIN
PRINT('COMMIT')
/*select *
from tb_CalificacionesDeInscripcion
where inscripcion in (select idInscripcionConvocatoria from
tb_InscripcionesConvocatorias
where agente = 220688
and convocatoria = 44)*/
COMMIT TRANSACTION
END
SET NOCOUNT OFF
Preguntas similares
- en serio neseito ayuda con este problema !!!!!!!!!!!!!!!!!!!!11
- Ayuda con Cuadro de Control
- Ayuda con Cuadro de Control
- Ayuda con Filtros
- Vincular ayuda con un proyecto Windows Form
- ayuda con Http 404
- necesito ayuda con ejercicios
- Ayuda con envio de correos......... URGENTE por favor!!!!!!!
- Ayuda con programas spyware
- Ayuda con La Ayuda
Busqueda sugerida :
Leer las respuestas