← Detay Sayfası
Nesne Düzenle
|
SP_KOD_GUNCELLE
İlgili Uygulama
-- Seçiniz --
SQL Server
Nesne Türü
View
Stored Procedure
Trigger
Job
Nesne Adı
Bu nesne dönem devrinden etkileniyor mu? (Örn: İçinde _01_ gibi sabit dönem kodu var mı?)
Genel Kullanım Amacı ve Notlar
Tam SQL Kodu
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;
Oluşturulma: 23.12.2025 07:15
Son Güncelleme: 23.12.2025 17:28
İptal
Nesneyi Sil
Değişiklikleri Kaydet