Files
WebGIM/GimDB/import/Stored Procedures/stp_importMagRic_step1.sql
2017-01-27 22:26:50 +01:00

62 lines
2.4 KiB
Transact-SQL

-- =============================================
-- Author: GAR
-- Create date: 2015.11.20
-- Description: Import iniziale dati: Items
-- =============================================
CREATE PROCEDURE [import].[stp_importMagRic_step1]
AS
BEGIN
SET NOCOUNT ON;
-- SELECT * FROM [som_ita].[tmp_ImportRic_A]
DECLARE @Test BIT = 0; -- se 1 fa il rollback
DECLARE @SummaryOfChanges TABLE (Change VARCHAR(10));
BEGIN TRANSACTION;
-- CARICO I NUOVI ITEM
;WITH cteImportRicA
AS (
SELECT DISTINCT
LTRIM(RTRIM(UPPER(Gruppo))) AS Famiglia,
LTRIM(RTRIM(UPPER(REPLACE(CASE WHEN ISNULL([Descrizione], '') <> ''
THEN [Descrizione]
ELSE [CodCostruttore]
END, '"', '')))) AS Descrizione
,LTRIM(RTRIM(UPPER(NomeCostruttore))) AS NomeCostruttore
,LTRIM(RTRIM(UPPER(CodCostruttore))) AS CodCostruttore
,LTRIM(RTRIM(UPPER(CodSomaschini))) AS CodInterno
FROM [som_ita].[tmp_ImportRic_A]
)
MERGE INTO dbo.AnagItems AS Target
USING ( SELECT DISTINCT * FROM cteImportRicA ) AS Source
ON Target.Famiglia = Source.Famiglia AND Target.Descrizione = Source.Descrizione AND Target.NomeCostruttore = Source.NomeCostruttore AND Target.CodCostruttore = Source.CodCostruttore AND Target.CodInterno = Source.CodInterno
WHEN NOT MATCHED BY TARGET
THEN
INSERT ( Famiglia,Descrizione,NomeCostruttore,CodCostruttore,CodInterno)
VALUES ( Famiglia,Descrizione,NomeCostruttore,CodCostruttore,CodInterno)
--WHEN MATCHED -- AND Target.TranspCost <> Source.TranspCost AND @flgUpdate = 1
-- THEN
-- UPDATE SET Descrizione = Source.Descrizione
--WHEN NOT MATCHED BY SOURCE THEN
-- DELETE
OUTPUT $ACTION INTO @SummaryOfChanges;-- carico i cambiamenti in tabella
SELECT * FROM dbo.AnagItems
IF @test = 1 ROLLBACK
ELSE COMMIT;
-- Carico le modifiche fatte in variabile Testo
SELECT Change + ' : ' + CONVERT(VARCHAR(10), COUNT(*))
FROM @SummaryOfChanges
GROUP BY Change;
/* reset dbo.AnagItems
DELETE dbo.AnagItems
DBCC CHECKIDENT ('dbo.AnagItems', reseed, 0) -- reset idx tabella dopo delete
*/
END