62 lines
2.4 KiB
Transact-SQL
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 |