
Ayuda, Insertar con Procedimiento Almacenado
Publicado por Dariel (25 intervenciones) el 19/11/2014 16:03:33
Tengo una duda a ver si pueden ayudarme, estoy creando un procedimiento almacenado, que inserte datos en varias tablas a la ves, esto no es problema, el problema me viene cuando inserto en las que estan relacionadas a esta(Cliente), que posee un ID Autoincrementado (Identity), y 3 de las tablas relacionadas a ella son datos pertemecientes al cliente tambien por lo tanto tienen el ID_Cliente pero no Autoincrementado, para insertarlo tengo que pasarlo yo, este es el problema, como se cual es el ID_Cliente que se esta generando para poderlo pasar como dato a las demas tablas, aca te madno el procedimiento para que lo vean, gracias por todo.
USE [db_Notarie]
GO
/**** Procedimiento Almacenado InsertarCliente ****/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[InsertarCliente]
/Valores del CLIENTE/
@ID_Cliente bigint,
@Nombre_Cliente varchar(50),
@OtroNombre_Cliente varchar(50),
@Apellidos_Cliente varchar(50),
@NoApartamento_Cliente varchar(50),
@NomComplejo_Cliente varchar(50),
@NumCompleOCasa_Cliente varchar(50),
@Rue_Cliente varchar(50),
@Quartier_Cliente varchar(50),
@Ville_Cliente varchar(50),
@Departament_Cliente varchar(50),
@Pays_Cliente varchar(50),
@CodePostal_Cliente varchar(50),
@ID_TipoCliente_Cliente int,
@Descripcion_Cliente varchar(50),
/Valores del Situacion Profecional/
@PosicionOcupa_SP varchar(50),
@Empleador_SP varchar(50),
@NomComplex_SP varchar(50),
@NumComOMaesonRue_SP varchar(50),
@Quartier_SP varchar(50),
@Ville_SP varchar(50),
@Pays_SP varchar(50),
@CodigoPostal_SP varchar(50),
@Fax_SP varchar(50),
@Email_SP varchar(50),
@Telefono_SP varchar(50),
@NoExtencion_SP varchar(50),
@FechaComiensoTrab date,
@TiempoTrabajoActual varchar(50),
@Profesion varchar(50),
/Valores del IDENTIFICACION/
@NIF_Cliente_Iden varchar(50),
@CIN_Cliente_Iden varchar(50),
@NoSegSocial_Iden varchar(50),
@NoPasaporte_Iden varchar(50),
@Email_Iden varchar(50),
@Nacionalidad_Iden varchar(50),
@PaysResidencia_Iden varchar(50),
@SectorProfesional_Iden varchar(50),
@FechaNacimiento_Iden date,
@Sexo_Iden varchar(50),
@LugarNacimiento varchar(50),
@ResidenteONo_Iden varchar(50),
@EstadoCivil_Iden varchar(50),
@PropietarioCasa_Iden varchar(50),
@TypeLogOccupe_Iden varchar(50),
@NoDependientes_Iden varchar(50),
@TelefonoCelular_Iden varchar(50),
@TelefonoPrivado_Iden varchar(50),
/Valores de Padres y Madres/
@NombrePadre varchar(50),
@OtroNombrePadre varchar(50),
@ApellidoPadre varchar(50),
@NombreMadre varchar(50),
@OtroNombreMadre varchar(50),
@ApellidoMadre varchar(50),
/Valores de Tipo de CLiente/
@TipoCliente varchar(25),
@Descripcion_TipoCliente varchar(50),
/Variable para mensage/
@msg AS VARCHAR(100) OUTPUT
AS
BEGIN
SET NOCOUNT ON;
Begin Tran Tadd
Begin Try
INSERT INTO [dbo].[tbl_Cliente] ([Nombre_Cliente], [OtroNombre_Cliente], [Apellidos_Cliente], [NoApartamento_Cliente], [NomComplejo_Cliente], [NumCompleOCasa_Cliente], [Rue_Cliente], [Quartier_Cliente], [Ville_Cliente], [Departament_Cliente], [Pays_Cliente], [CodePostal_Cliente], [ID_TipoCliente_Cliente], [Descripcion_Cliente])
VALUES (@Nombre_Cliente, @OtroNombre_Cliente, @Apellidos_Cliente, @NoApartamento_Cliente, @NomComplejo_Cliente, @NumCompleOCasa_Cliente, @Rue_Cliente, @Quartier_Cliente, @Ville_Cliente, @Departament_Cliente, @Pays_Cliente, @CodePostal_Cliente, @ID_TipoCliente_Cliente, @Descripcion_Cliente);
INSERT INTO [dbo].[tbl_SituacionProfeccionalCliente] ([ID_Cliente], [PosicionOcupa_SP], [Empleador_SP], [NomComplex_SP], [NumComOMaesonRue_SP], [Quartier_SP], [Ville_SP], [Pays_SP], [CodigoPostal_SP], [Fax_SP], [Email_SP], [Telefono_SP], [NoExtencion_SP], [FechaComiensoTrab], [TiempoTrabajoActual], [Profesion])
VALUES (@ID_Cliente, @PosicionOcupa_SP, @Empleador_SP, @NomComplex_SP, @NumComOMaesonRue_SP, @Quartier_SP, @Ville_SP, @Pays_SP, @CodigoPostal_SP, @Fax_SP, @Email_SP, @Telefono_SP, @NoExtencion_SP, @FechaComiensoTrab, @TiempoTrabajoActual, @Profesion);
INSERT INTO [dbo].[tbl_Identificacion] ([ID_Cliente], [NIF_Cliente_Iden], [CIN_Cliente_Iden], [NoSegSocial_Iden], [NoPasaporte_Iden], [Email_Iden], [Nacionalidad_Iden], [PaysResidencia_Iden], [SectorProfesional_Iden], [FechaNacimiento_Iden], [Sexo_Iden], [LugarNacimiento], [ResidenteONo_Iden], [EstadoCivil_Iden], [PropietarioCasa_Iden], [TypeLogOccupe_Iden], [NoDependientes_Iden], [TelefonoCelular_Iden], [TelefonoPrivado_Iden])
VALUES (@ID_Cliente, @NIF_Cliente_Iden, @CIN_Cliente_Iden, @NoSegSocial_Iden, @NoPasaporte_Iden, @Email_Iden, @Nacionalidad_Iden, @PaysResidencia_Iden, @SectorProfesional_Iden, @FechaNacimiento_Iden, @Sexo_Iden, @LugarNacimiento, @ResidenteONo_Iden, @EstadoCivil_Iden, @PropietarioCasa_Iden, @TypeLogOccupe_Iden, @NoDependientes_Iden, @TelefonoCelular_Iden, @TelefonoPrivado_Iden);
INSERT INTO [dbo].[tbl_PadresMadres] ([ID_Cliente], [NombrePadre], [OtroNombrePadre], [ApellidoPadre], [NombreMadre], [OtroNombreMadre], [ApellidoMadre])
VALUES (@ID_Cliente, @NombrePadre, @OtroNombrePadre, @ApellidoPadre, @NombreMadre, @OtroNombreMadre, @ApellidoMadre);
INSERT INTO [dbo].[tbl_TipoCliente] ([TipoCliente], [Descripcion_TipoCliente])
VALUES (@TipoCliente, @Descripcion_TipoCliente);
SET @msg= 'El Cliente se registro correctamente.'
COMMIT TRAN Tadd
End try
Begin Catch
SET @msg= 'Ocurrio un Error: ' + ERROR_MESSAGE() + ' en la línea ' + CONVERT(NVARCHAR(255), ERROR_LINE() ) + '.'
Rollback TRAN Tadd
End Catch
END
GO

USE [db_Notarie]
GO
/**** Procedimiento Almacenado InsertarCliente ****/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[InsertarCliente]
/Valores del CLIENTE/
@ID_Cliente bigint,
@Nombre_Cliente varchar(50),
@OtroNombre_Cliente varchar(50),
@Apellidos_Cliente varchar(50),
@NoApartamento_Cliente varchar(50),
@NomComplejo_Cliente varchar(50),
@NumCompleOCasa_Cliente varchar(50),
@Rue_Cliente varchar(50),
@Quartier_Cliente varchar(50),
@Ville_Cliente varchar(50),
@Departament_Cliente varchar(50),
@Pays_Cliente varchar(50),
@CodePostal_Cliente varchar(50),
@ID_TipoCliente_Cliente int,
@Descripcion_Cliente varchar(50),
/Valores del Situacion Profecional/
@PosicionOcupa_SP varchar(50),
@Empleador_SP varchar(50),
@NomComplex_SP varchar(50),
@NumComOMaesonRue_SP varchar(50),
@Quartier_SP varchar(50),
@Ville_SP varchar(50),
@Pays_SP varchar(50),
@CodigoPostal_SP varchar(50),
@Fax_SP varchar(50),
@Email_SP varchar(50),
@Telefono_SP varchar(50),
@NoExtencion_SP varchar(50),
@FechaComiensoTrab date,
@TiempoTrabajoActual varchar(50),
@Profesion varchar(50),
/Valores del IDENTIFICACION/
@NIF_Cliente_Iden varchar(50),
@CIN_Cliente_Iden varchar(50),
@NoSegSocial_Iden varchar(50),
@NoPasaporte_Iden varchar(50),
@Email_Iden varchar(50),
@Nacionalidad_Iden varchar(50),
@PaysResidencia_Iden varchar(50),
@SectorProfesional_Iden varchar(50),
@FechaNacimiento_Iden date,
@Sexo_Iden varchar(50),
@LugarNacimiento varchar(50),
@ResidenteONo_Iden varchar(50),
@EstadoCivil_Iden varchar(50),
@PropietarioCasa_Iden varchar(50),
@TypeLogOccupe_Iden varchar(50),
@NoDependientes_Iden varchar(50),
@TelefonoCelular_Iden varchar(50),
@TelefonoPrivado_Iden varchar(50),
/Valores de Padres y Madres/
@NombrePadre varchar(50),
@OtroNombrePadre varchar(50),
@ApellidoPadre varchar(50),
@NombreMadre varchar(50),
@OtroNombreMadre varchar(50),
@ApellidoMadre varchar(50),
/Valores de Tipo de CLiente/
@TipoCliente varchar(25),
@Descripcion_TipoCliente varchar(50),
/Variable para mensage/
@msg AS VARCHAR(100) OUTPUT
AS
BEGIN
SET NOCOUNT ON;
Begin Tran Tadd
Begin Try
INSERT INTO [dbo].[tbl_Cliente] ([Nombre_Cliente], [OtroNombre_Cliente], [Apellidos_Cliente], [NoApartamento_Cliente], [NomComplejo_Cliente], [NumCompleOCasa_Cliente], [Rue_Cliente], [Quartier_Cliente], [Ville_Cliente], [Departament_Cliente], [Pays_Cliente], [CodePostal_Cliente], [ID_TipoCliente_Cliente], [Descripcion_Cliente])
VALUES (@Nombre_Cliente, @OtroNombre_Cliente, @Apellidos_Cliente, @NoApartamento_Cliente, @NomComplejo_Cliente, @NumCompleOCasa_Cliente, @Rue_Cliente, @Quartier_Cliente, @Ville_Cliente, @Departament_Cliente, @Pays_Cliente, @CodePostal_Cliente, @ID_TipoCliente_Cliente, @Descripcion_Cliente);
INSERT INTO [dbo].[tbl_SituacionProfeccionalCliente] ([ID_Cliente], [PosicionOcupa_SP], [Empleador_SP], [NomComplex_SP], [NumComOMaesonRue_SP], [Quartier_SP], [Ville_SP], [Pays_SP], [CodigoPostal_SP], [Fax_SP], [Email_SP], [Telefono_SP], [NoExtencion_SP], [FechaComiensoTrab], [TiempoTrabajoActual], [Profesion])
VALUES (@ID_Cliente, @PosicionOcupa_SP, @Empleador_SP, @NomComplex_SP, @NumComOMaesonRue_SP, @Quartier_SP, @Ville_SP, @Pays_SP, @CodigoPostal_SP, @Fax_SP, @Email_SP, @Telefono_SP, @NoExtencion_SP, @FechaComiensoTrab, @TiempoTrabajoActual, @Profesion);
INSERT INTO [dbo].[tbl_Identificacion] ([ID_Cliente], [NIF_Cliente_Iden], [CIN_Cliente_Iden], [NoSegSocial_Iden], [NoPasaporte_Iden], [Email_Iden], [Nacionalidad_Iden], [PaysResidencia_Iden], [SectorProfesional_Iden], [FechaNacimiento_Iden], [Sexo_Iden], [LugarNacimiento], [ResidenteONo_Iden], [EstadoCivil_Iden], [PropietarioCasa_Iden], [TypeLogOccupe_Iden], [NoDependientes_Iden], [TelefonoCelular_Iden], [TelefonoPrivado_Iden])
VALUES (@ID_Cliente, @NIF_Cliente_Iden, @CIN_Cliente_Iden, @NoSegSocial_Iden, @NoPasaporte_Iden, @Email_Iden, @Nacionalidad_Iden, @PaysResidencia_Iden, @SectorProfesional_Iden, @FechaNacimiento_Iden, @Sexo_Iden, @LugarNacimiento, @ResidenteONo_Iden, @EstadoCivil_Iden, @PropietarioCasa_Iden, @TypeLogOccupe_Iden, @NoDependientes_Iden, @TelefonoCelular_Iden, @TelefonoPrivado_Iden);
INSERT INTO [dbo].[tbl_PadresMadres] ([ID_Cliente], [NombrePadre], [OtroNombrePadre], [ApellidoPadre], [NombreMadre], [OtroNombreMadre], [ApellidoMadre])
VALUES (@ID_Cliente, @NombrePadre, @OtroNombrePadre, @ApellidoPadre, @NombreMadre, @OtroNombreMadre, @ApellidoMadre);
INSERT INTO [dbo].[tbl_TipoCliente] ([TipoCliente], [Descripcion_TipoCliente])
VALUES (@TipoCliente, @Descripcion_TipoCliente);
SET @msg= 'El Cliente se registro correctamente.'
COMMIT TRAN Tadd
End try
Begin Catch
SET @msg= 'Ocurrio un Error: ' + ERROR_MESSAGE() + ' en la línea ' + CONVERT(NVARCHAR(255), ERROR_LINE() ) + '.'
Rollback TRAN Tadd
End Catch
END
GO

Valora esta pregunta


0