tengo un sp donde le ingreso informacion a 7 tablas
pero mi problema radica en lo Siguiente
tengo la tablas
PERSONAS
CORREOS
CORREOS_PERSONAS
Hago el insert en la tabla PERSONAS
Hago el insert en la tabla CORREOS
Por medio de consultas recupero los ultimos id insertados
y los guardo en variables
luego inserto en la tabla CORREOS_PERSONAS los datos guardados en las variables
mi problema esta que cuando genera un error el insert de la tabla personas
de igual me inserta en las otras 2 tablas
tengo el siguiente sp
Código SQL:
Ver original
CREATE proc insertaPersonas @documento AS INT ,@codigo AS INT ,@nombres AS VARCHAR(100) ,@apellidos AS VARCHAR(100) ,@fechanacimiento AS DATE ,@correo AS VARCHAR(100) ,@Observacorreo AS VARCHAR(100) ,@telefono AS VARCHAR(100) ,@observaciontelefono AS VARCHAR(100) ,@genero AS VARCHAR(100) ,@observaciongenero AS VARCHAR(100) ,@cargo AS VARCHAR(100) ,@observacioncargo AS VARCHAR(100) ,@estadocivil AS VARCHAR(100) ,@observacionestadocivil AS VARCHAR(100) AS BEGIN try BEGIN TRANSACTION INSERT INTO PERSONAS (Documento,Codigo_empresario,Nombres,apellidos,fecha_nacimiento) VALUES(@documento,@codigo,@nombres,@apellidos,@fechanacimiento); INSERT INTO CORREOS(correo_electronico,estado_correo_electronico) VALUES(@correo,@Observacorreo); DECLARE @idpersona AS INT SET @idpersona=''; SET @idpersona = (SELECT MAX (id_persona) FROM PERSONAS) DECLARE @idcorreo AS INT SET @idcorreo = (SELECT MAX (id_correo_electronico) FROM CORREOS) INSERT INTO CORREOS_PERSONAS (id_persona,id_correo_electronico) VALUES(@idpersona,@idcorreo); INSERT INTO TELEFONOS (numero_telefono,observacion_numero) VALUES(@telefono,@observaciontelefono); DECLARE @idtelefono AS INT SET @idtelefono = (SELECT MAX (id_telefono) FROM TELEFONOS) INSERT INTO TELEFONOS_PERSONAS (id_persona,id_telefono,estado_telefono) VALUES(@idpersona,@idtelefono,@observaciontelefono); INSERT INTO GENERO( nombre_genero,observacion_genero,id_persona)VALUES(@genero,@observaciongenero,@idpersona); INSERT INTO CARGO(nombre_cargo,observacion,id_persona)VALUES (@cargo,@observacioncargo,@idpersona) INSERT INTO ESTADO_CIVIL(nombre_estado_civil,observacion,id_persona)VALUES (@estadocivil,@observacionestadocivil,@idpersona) commit tran END try BEGIN catch ROLLBACK print error_message() END catch