01/09/2008, 20:25
|
| | Fecha de Ingreso: diciembre-2007
Mensajes: 22
Antigüedad: 17 años, 1 mes Puntos: 0 | |
Respuesta: SP Update Dinamico gracias por responder.
La verdad que no encuentro lo que necesito y en realidad nose si podra. Mi idea es hacer un procedimiento almacenado para actualizar los registros, que fuese parecido, al siguiente que es para buscar.
CREATE PROCEDURE [dbo].[Tabla1_Consulta]
@campo1 INT= 0,
@campo2 INT=0,
@campofecha1 DATETIME= NULL,
@campofecha2 DATETIME= NULL,
@Idcampo1 INT=0,
@Idcampo2 INT=0
AS
BEGIN TRANSACTION
BEGIN
SELECT campo1,campo2, ..... , campon
FROM
Tabla1
WHERE
(campofecha1 >= @campofecha1 OR @campofecha1=null) AND (campofecha2 <= @@campofecha2 OR @@campofecha2=NULL)
AND (campo1 = @campo1 OR @campo1=0)
AND (campo2 = @campo2 OR @campo2 = 0)
AND (Idcampo1 = @Idcampo1 OR @Idcampo1=0)
AND (Idcampo2 = @Idcampo2 OR @Idcampo2=0)
END
COMMIT TRANSACTION
GO
Aqui le entrego los parametros para realizar la busqueda en el caso de que algunos de estos parametros fuese NULL para los valores string y 0 en el caso de los valores numericos, estos no son tomados en cosideracion.
por ejemplo si en la busqueda solo coloco @campo1, me buscara solo por este campo y los otros campos no seran considerados.
El procedimiento que deseo hacer para actualizar tiene la misma mecanica, pero no se como se puede hacer.
por ejemplo tengo 3 campos para actualizar
CREATE PROCEDURE [dbo].[Tabla1_Actualizar]
@idcampo INT= 0,
@campo1 Varchar=NULL,
@campo2 Varchar=NULL,
@campo3 Varchar=NULL
AS
BEGIN TRANSACTION
BEGIN
UPDATE dbo.Tabla1
SET campo1 = @campo1,
campo2 = @campo2,
campo3 = @campo3
WHERE idcampo = @idcampo
END
COMMIT TRANSACTION
GO
ahora como se puede hacer si quiero actualizar solo el campo1 y no los demas. ¿?
o si quiero actualizar todos los campos menos el campo2.
esa es mi duda |