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!!!