Últimos mensajes - Powered by IBM
- 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 ...
Palabras claves
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 similare
- 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