📄 Tam SQL Kodu (Referans)

Analiz eklerken buradan kod parçalarını kopyalayabilirsiniz

CREATE PROCEDURE [dbo].[SP_KOD_GUNCELLE]
    @FilterCodeList NVARCHAR(2000),  -- Virgülle ayrilmis ESKI kod listesi
    @NewCodeList NVARCHAR(2000)      -- Virgülle ayrilmis YENI kod listesi
AS
BEGIN
    SET NOCOUNT ON;
    
    DECLARE @TempTable TABLE (OldCode NVARCHAR(255), NewCode NVARCHAR(255));
    DECLARE @OldCode NVARCHAR(255);
    DECLARE @NewCode NVARCHAR(255);
    DECLARE @Delimiter CHAR(1) = ',';
    DECLARE @StartOld INT = 1, @EndOld INT;
    DECLARE @StartNew INT = 1, @EndNew INT;
    
    SET @FilterCodeList = @FilterCodeList + @Delimiter;
    SET @NewCodeList = @NewCodeList + @Delimiter;
    
    SET @EndOld = CHARINDEX(@Delimiter, @FilterCodeList, @StartOld);
    SET @EndNew = CHARINDEX(@Delimiter, @NewCodeList, @StartNew);
    
    -- Eski ve yeni kodlari eslestirerek tabloya ekleme
    WHILE @EndOld > 0 AND @EndNew > 0
    BEGIN
        SET @OldCode = LTRIM(RTRIM(SUBSTRING(@FilterCodeList, @StartOld, @EndOld - @StartOld)));
        SET @NewCode = LTRIM(RTRIM(SUBSTRING(@NewCodeList, @StartNew, @EndNew - @StartNew)));
        
        IF @OldCode <> '' AND @NewCode <> ''
        BEGIN
            INSERT INTO @TempTable (OldCode, NewCode) VALUES (@OldCode, @NewCode);
        END
        
        SET @StartOld = @EndOld + 1;
        SET @StartNew = @EndNew + 1;
        SET @EndOld = CHARINDEX(@Delimiter, @FilterCodeList, @StartOld);
        SET @EndNew = CHARINDEX(@Delimiter, @NewCodeList, @StartNew);
    END;
    
    -- 1) PRODUCERCODE'ü güncelleme (önce bos olanlari güncelleyelim)
    UPDATE LG_011_ITEMS
    SET PRODUCERCODE = T.OldCode
    FROM LG_011_ITEMS I
    INNER JOIN @TempTable T ON I.CODE = T.OldCode
    WHERE (I.PRODUCERCODE IS NULL OR I.PRODUCERCODE = '');
    
    -- 2) PRODUCERCODE'ü ekleme (dolu olanlar için)
    UPDATE LG_011_ITEMS
    SET PRODUCERCODE = I.PRODUCERCODE + '/' + T.OldCode
    FROM LG_011_ITEMS I
    INNER JOIN @TempTable T ON I.CODE = T.OldCode
    WHERE I.PRODUCERCODE IS NOT NULL AND I.PRODUCERCODE <> '';
    
    -- 3) CODE'u yeni kod ile güncelleme
    UPDATE LG_011_ITEMS
    SET CODE = T.NewCode
    FROM LG_011_ITEMS I
    INNER JOIN @TempTable T ON I.CODE = T.OldCode;
END;

➕ Yeni Kod Analizi Ekle

📋 Mevcut Analizler (0)

Henüz kod analizi eklenmemiş.

Yukarıdaki formu kullanarak ilk analizi ekleyin.