Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   SQL Server (http://www.forosdelweb.com/f87/)
-   -   Actualizar/insertar varios registros con valores distintos en un solo procedimiento (http://www.forosdelweb.com/f87/actualizar-insertar-varios-registros-con-valores-distintos-solo-procedimiento-569287/)

Bravenap 26/03/2008 03:11

Actualizar/insertar varios registros con valores distintos en un solo procedimiento
 
Muy buenas. He creado un procedimiento almacenado para calificar los ejercicios de los alumnos:

Código PHP:

CREATE PROCEDURE "PA_FC_CalificaEjercicio"
(
    @
idAlumno int,
    @
idDocumento int,
    @
nota int
)
AS
BEGIN
    
IF NOT EXISTS(SELECT FROM fc_relAlumnoEjercicio WHERE IDAlumno = @idalumno AND IDDocumento = @idDocumento)
        
INSERT INTO fc_relAlumnoEjercicio (IDAlumnoIDDocumentoNotaVALUES (@idAlumno, @idDocumento, @nota)
    ELSE
        
UPDATE fc_relAlumnoEjercicio SET Nota = @nota  WHERE IDAlumno = @idAlumno AND IDDocumento = @idDocumento
END 

Con él inserto una nueva calificación o bien la modifico pero he de llamar al procedimiento almacenado por cada ejercicio a calificar. Me gustaría poder calificar una lista de ejercicios con sus respectivas calificaciones en una sola llamada. Algo así:

@idsDocumento = "5,6,10,23,44"
@notas = "10,10,6,2,8"

¿Es posible?

Gracias y un saludo.

Andres95 26/03/2008 08:16

Re: Actualizar/insertar varios registros con valores distintos en un solo procedimien
 
Puedes pasar la lista como un XML..

Passing lists to SQL Server with XML Parameters


:arriba: Saludos!

iislas 26/03/2008 11:44

Re: Actualizar/insertar varios registros con valores distintos en un solo procedimien
 
A parte de lo que recomienda Andres95

Seria conveniente que te leyeras este link:

http://www.sommarskog.se/arrays-in-sql-2000.html

Bravenap 27/03/2008 02:11

Re: Actualizar/insertar varios registros con valores distintos en un solo procedimien
 
Bien, gracias a los dos. Veo que hay soluciones a gusto del consumidor. Ahora ya no sé dónde elegir :borracho:.

Las estudiaré.

Gracias y un saludo.


La zona horaria es GMT -6. Ahora son las 13:03.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.