Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/05/2008, 12:51
Avatar de lanzi
lanzi
 
Fecha de Ingreso: noviembre-2005
Ubicación: BUENOS AIRES
Mensajes: 55
Antigüedad: 18 años, 6 meses
Puntos: 0
Update Un Poco Complicado ¿como Hago?

Hola AMIGUETES DEL FORO, encontre una nueva forma de martirizarlos con una nueva consulta que quiero hacerles, necesito traer varios datos de vairas tablas, y a su vez deseo poder hacer un UPDATE de algunos y solo algunos de los campos de estas tablas, obviamente aceptan valores nulos en el caso de querer que quede alguno vacio, las tablas son PERSONAL, DATOS_SECUNADRIOS Y NACIMIENTO, les dejo una solucion que me pasaron, aunque no me sirve porque si o si debo completar todos los campos solicitados

-----------------------------------------------------
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go

ALTER PROCEDURE [dbo].[SP_CARGA_DE_DATOS]

@apellido varchar(20),
@nombre varchar(20),
@dni int,
@sexo varchar(20),
@cipfa int,
@f_nacimiento smalldatetime,
@p_nacimiento varchar(50)

AS

DECLARE @vTextoError varchar(200)
DECLARE @idPersonal int

--Comienzo la transacción
BEGIN TRANSACTION

--Agrego registro en la tabla Personal
INSERT INTO PERSONAL (apellido, nombres, dni)
VALUES (@apellido, @nombre, @dni)

IF @@error <> 0
begin
set @vTextoError = 'No se pudo insertar en la tabla Personal'
raiserror 50001 @vTextoError
rollback transaction
return
end

--Guardo el nro. de id insertado
SET @idPersonal = @@identity

--Agrego registro en la tabla Datos_Secundarios
INSERT INTO DATOS_SECUNDARIOS (sexo, cipfa, id_personal)
VALUES (@sexo, @cipfa , @idPersonal)

IF @@error <> 0
begin
set @vTextoError = 'No se pudo insertar en la tabla datos_secundarios'
raiserror 50001 @vTextoError
rollback transaction
return
end

--Agrego registro en la tabla nacimiento
INSERT INTO NACIMIENTO (fecha_nacimiento, provincia_nacimiento, id_personal)
VALUES (@f_nacimiento, @p_nacimiento, @idPersonal)

IF @@error <> 0
begin
set @vTextoError = 'No se pudo insertar en la tabla nacimiento'
raiserror 50001 @vTextoError
rollback transaction
return
end

COMMIT TRANSACTION
___________________________
DESDE YA LES AGRADEZCO POR ANTICIPADO SUS RESPUESTAS, GRACIAS!!!