Ecco il codice maledetto...
codice:
CREATE PROCEDURE Sp_IMPORT_RM5_Operatore_No_Su_Giro
--Questa procedura viene utlizzata per importare i fattorini che non sono stati assegnati ad alcun viaggio
--per qualsiasi tipo di motivazione (Ferie, Permesso, Malattia e Training).
--Viene richiamata da una pagina ASP che a sua volta viene chiamata tramite un .BAT che viene a sua volta
--richiamato da un pulsantino in Access
AS
BEGIN
set nocount on
--cancello contenuto della tabella TB_GIRO_RDS a seconda della data che mi è stata passata
DECLARE @DataRDS datetime
DECLARE CursorInsertTable1 CURSOR FOR
SELECT DISTINCT
DataViaggio
FROM RM5.dbo.ViaggiEsportatiFleming
GROUP BY DataViaggio
OPEN CursorInsertTable1
FETCH NEXT FROM CursorInsertTable1 INTO @DataRDS
WHILE @@FETCH_STATUS = 0
begin
DELETE FROM TB_GIRO_RDS WHERE DATA = @DataRDS
FETCH NEXT FROM CursorInsertTable1 INTO @DataRDS
end
close CursorInsertTable1
deallocate CursorInsertTable1
--inserimento nella tabella TB_GIRO_RDS
DECLARE
@UtenteId varchar(10),
@Data datetime,
@NewId int, -- Nuovo ID
@Tabella varchar(50)
SET @Tabella = 'TB_UTENTE_NO_SU_GIRO'
DECLARE CursorInsertTable CURSOR FOR
SELECT DISTINCT
DB_COLLABORATORI.dbo.AD_UTENTI.ID,
RM5.dbo.Problemi.Data
FROM
DB_COLLABORATORI.dbo.AD_UTENTI, RM5.dbo.Problemi
WHERE EXISTS (SELECT RM5.dbo.ViaggiEsportatiFleming.CodProblema FROM RM5.dbo.ViaggiEsportatiFleming WHERE RM5.dbo.ViaggiEsportatiFleming.CodProblema = RM5.dbo.Problemi.Codice)
AND (DB_COLLABORATORI.dbo.AD_UTENTI.AREA_ID = 'S00000000J')
AND (DB_COLLABORATORI.dbo.AD_UTENTI.STATO = '1')
AND (DB_COLLABORATORI.dbo.AD_UTENTI.ID+Convert(char(10),RM5.dbo.Problemi.Data)) NOT IN
(
SELECT DISTINCT
(RM5.dbo.ViaggiEsportatiFleming.CodAutista+Convert(char(10),RM5.dbo.ViaggiEsportatiFleming.DataViaggio))
FROM RM5.dbo.ViaggiEsportatiFleming
GROUP BY RM5.dbo.ViaggiEsportatiFleming.CodAutista, RM5.dbo.ViaggiEsportatiFleming.DataViaggio
)
OPEN CursorInsertTable
FETCH NEXT FROM CursorInsertTable INTO @UtenteId, @Data
WHILE @@FETCH_STATUS = 0
begin
EXEC MAKE_UNIQUE_KEY_INT @Tabella, @NewId OUTPUT -- Creo la nuova chiave primaria
INSERT INTO TB_UTENTE_NO_SU_GIRO
(
ID,
UTENTE_ID,
DATA
)
VALUES
(
@NewId,
@UtenteId,
@Data
)
FETCH NEXT FROM CursorInsertTable INTO @UtenteId, @Data
end
close CursorInsertTable
deallocate CursorInsertTable
END
grazie, ciao