Description
Properties
| Name | Value |
|---|---|
| ANSI Nulls ON | True |
| Quoted Identifier ON | True |
| Encrypted | False |
| Execute As | |
| Assembly |
SQL Script
Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
/**
EXEC AUH_DERECHO_2_DATOS_PERSONAS
**/
-- Description: <Description,,>
-- =============================================
CREATE OR ALTER PROCEDURE dbo.AUH_DERECHO_2_DATOS_PERSONAS
-- Add the parameters for the stored procedure here
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
DECLARE @cuit varchar(50)
DECLARE @fnac date
DECLARE @sexo varchar(1)
DECLARE @cuit_persona varchar(50)
/*SELECT TOP 50000 * FROM (
SELECT CUIL_TIT_DERECHO AS CUIT,
DATEFROMPARTS(SUBSTRING(FECHANAC_CUIL_TIT_DERECHO,7,4),SUBSTRING(FECHANAC_CUIL_TIT_DERECHO,4,2),SUBSTRING(FECHANAC_CUIL_TIT_DERECHO,1,2)) AS FECHA_NAC,
LEFT(SEXO_CUIL_TIT_DERECHO,1) AS SEXO
FROM AUH_Titulares_Derecho
WHERE ISNULL(_datos_personas_proc, 0) = 0
GROUP BY CUIL_TIT_DERECHO, FECHANAC_CUIL_TIT_DERECHO, SEXO_CUIL_TIT_DERECHO
) AUH*/
DECLARE AUHDer CURSOR FOR
SELECT TOP 50000 AUH_Titulares_Derecho.CUIL_TIT_DERECHO AS CUIT,
DATEFROMPARTS(SUBSTRING(AUH_Titulares_Derecho.FECHANAC_CUIL_TIT_DERECHO,7,4),SUBSTRING(AUH_Titulares_Derecho.FECHANAC_CUIL_TIT_DERECHO,4,2),SUBSTRING(AUH_Titulares_Derecho.FECHANAC_CUIL_TIT_DERECHO,1,2)) AS FECHA_NAC,
LEFT(AUH_Titulares_Derecho.SEXO_CUIL_TIT_DERECHO,1) AS SEXO,
DATOS_PERSONAS.c01_cuit
FROM AUH_Titulares_Derecho LEFT OUTER JOIN DATOS_PERSONAS
ON AUH_Titulares_Derecho.CUIL_TIT_DERECHO = DATOS_PERSONAS.c01_cuit
WHERE DATOS_PERSONAS.c02_fecha_nac IS NULL
AND ISNULL(AUH_Titulares_Derecho._datos_personas_proc, 0) = 0
OPEN AUHDer
FETCH NEXT FROM AUHDer into @cuit, @fnac, @sexo, @cuit_persona
WHILE @@FETCH_STATUS = 0 BEGIN
/*IF EXISTS (SELECT c01_cuit FROM DATOS_PERSONAS WHERE c01_cuit = @cuit) BEGIN*/
IF (@cuit_persona is not null) BEGIN
UPDATE DATOS_PERSONAS SET c02_fecha_nac = @fnac
WHERE c01_cuit = @cuit AND c02_fecha_nac IS NULL
END
ELSE BEGIN
INSERT INTO DATOS_PERSONAS (c01_cuit, c02_fecha_nac)
VALUES (@cuit, @fnac)
END
/*
anulado para no realizar un update directo sobre padrones.
enviamos a una tabla temporal que será procesada más tarde.
IF EXISTS (SELECT identificacion FROM padrones
WHERE identificacion = @cuit AND isnull(sexo,'X') != @sexo) begin
UPDATE padrones SET sexo = @sexo
WHERE identificacion = @cuit
end*/
if not exists (select cuit from padrones_sexo_update where cuit = @cuit) begin
insert into padrones_sexo_update (cuit, sexo) values (@cuit, @sexo)
end
UPDATE AUH_Titulares_Derecho SET _datos_personas_proc = 1 WHERE CUIL_TIT_DERECHO = @cuit
--SELECT @cuit as CUIT_PROCESADO
FETCH NEXT FROM AUHDer into @cuit, @fnac, @sexo, @cuit_persona
END
CLOSE AUHDer
DEALLOCATE AUHDer
END
GO
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
/**
EXEC AUH_DERECHO_2_DATOS_PERSONAS
**/
-- Description: <Description,,>
-- =============================================
CREATE OR ALTER PROCEDURE dbo.AUH_DERECHO_2_DATOS_PERSONAS
-- Add the parameters for the stored procedure here
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
DECLARE @cuit varchar(50)
DECLARE @fnac date
DECLARE @sexo varchar(1)
DECLARE @cuit_persona varchar(50)
/*SELECT TOP 50000 * FROM (
SELECT CUIL_TIT_DERECHO AS CUIT,
DATEFROMPARTS(SUBSTRING(FECHANAC_CUIL_TIT_DERECHO,7,4),SUBSTRING(FECHANAC_CUIL_TIT_DERECHO,4,2),SUBSTRING(FECHANAC_CUIL_TIT_DERECHO,1,2)) AS FECHA_NAC,
LEFT(SEXO_CUIL_TIT_DERECHO,1) AS SEXO
FROM AUH_Titulares_Derecho
WHERE ISNULL(_datos_personas_proc, 0) = 0
GROUP BY CUIL_TIT_DERECHO, FECHANAC_CUIL_TIT_DERECHO, SEXO_CUIL_TIT_DERECHO
) AUH*/
DECLARE AUHDer CURSOR FOR
SELECT TOP 50000 AUH_Titulares_Derecho.CUIL_TIT_DERECHO AS CUIT,
DATEFROMPARTS(SUBSTRING(AUH_Titulares_Derecho.FECHANAC_CUIL_TIT_DERECHO,7,4),SUBSTRING(AUH_Titulares_Derecho.FECHANAC_CUIL_TIT_DERECHO,4,2),SUBSTRING(AUH_Titulares_Derecho.FECHANAC_CUIL_TIT_DERECHO,1,2)) AS FECHA_NAC,
LEFT(AUH_Titulares_Derecho.SEXO_CUIL_TIT_DERECHO,1) AS SEXO,
DATOS_PERSONAS.c01_cuit
FROM AUH_Titulares_Derecho LEFT OUTER JOIN DATOS_PERSONAS
ON AUH_Titulares_Derecho.CUIL_TIT_DERECHO = DATOS_PERSONAS.c01_cuit
WHERE DATOS_PERSONAS.c02_fecha_nac IS NULL
AND ISNULL(AUH_Titulares_Derecho._datos_personas_proc, 0) = 0
OPEN AUHDer
FETCH NEXT FROM AUHDer into @cuit, @fnac, @sexo, @cuit_persona
WHILE @@FETCH_STATUS = 0 BEGIN
/*IF EXISTS (SELECT c01_cuit FROM DATOS_PERSONAS WHERE c01_cuit = @cuit) BEGIN*/
IF (@cuit_persona is not null) BEGIN
UPDATE DATOS_PERSONAS SET c02_fecha_nac = @fnac
WHERE c01_cuit = @cuit AND c02_fecha_nac IS NULL
END
ELSE BEGIN
INSERT INTO DATOS_PERSONAS (c01_cuit, c02_fecha_nac)
VALUES (@cuit, @fnac)
END
/*
anulado para no realizar un update directo sobre padrones.
enviamos a una tabla temporal que será procesada más tarde.
IF EXISTS (SELECT identificacion FROM padrones
WHERE identificacion = @cuit AND isnull(sexo,'X') != @sexo) begin
UPDATE padrones SET sexo = @sexo
WHERE identificacion = @cuit
end*/
if not exists (select cuit from padrones_sexo_update where cuit = @cuit) begin
insert into padrones_sexo_update (cuit, sexo) values (@cuit, @sexo)
end
UPDATE AUH_Titulares_Derecho SET _datos_personas_proc = 1 WHERE CUIL_TIT_DERECHO = @cuit
--SELECT @cuit as CUIT_PROCESADO
FETCH NEXT FROM AUHDer into @cuit, @fnac, @sexo, @cuit_persona
END
CLOSE AUHDer
DEALLOCATE AUHDer
END
GO
Used By
No items found