SQL Server’da Kolon İçindeki Sıfırları Temizleyen Prosedür
Herkese merhaba,
Bu yazıda SQL Server’da kolon içindeki sıfırları temizleyen prosedür hakkında bilgi vereceğim.
Aslında bu bir prosedür değildi. Konu ile ilgili araştırma yaparken kod üzerinde birçok değişiklik yaparak kodu dinamik hale getirdim. Benzer bir örneğe internette rastlamadım. Alanında tektir. Daha da geliştirilebilir.
Prosedür parametre olarak tablo adı ve kolon adı almakta. Yani bu iki parametreyi doğru verdiğiniz takdirde prosedür çalışacaktır. Kodları aşağıda görmektesiniz.
--Tablo oluşturulması
CREATE TABLE Sayilar(
Sayi VARCHAR(10)
)
GO
--Tabloya veri eklenmesi
INSERT INTO Sayilar
(
Sayi
)
VALUES
('001'),
('002'),
('003'),
('004'),
('005'),
('006'),
('007'),
('008'),
('009'),
('010'),
('011'),
('012'),
('013');
--Tablonun kontrolü
SELECT * FROM Sayilar
GO
--Sıfırları silen prosedür
CREATE PROC SifirlariSilenProsedur
( @TabloAdi NVARCHAR(50),
@KolonAdi NVARCHAR(50)
)
AS
BEGIN
IF COL_LENGTH(@TabloAdi, @KolonAdi) IS NOT NULL
BEGIN
DECLARE @SQLUPDATECUMLECIGI VARCHAR(200)
SET @SQLUPDATECUMLECIGI='UPDATE ' + @TabloAdi+' SET ' + @KolonAdi +'=SUBSTRING(' +@KolonAdi + ', PATINDEX(''%[^0]%'', '+ @KolonAdi +' ), 10);'
--PRINT @SQLUPDATECUMLECIGI
EXEC (@SQLUPDATECUMLECIGI)
PRINT 'İşlem başarıyla tamamlandı.'
END;
ELSE
BEGIN
PRINT 'Tabloda böyle bir kolon adı mevcut değil. Lütfen kontrol edin!!!';
END;
END;
--Prosedürün kullanımı
EXEC SifirlariSilenProsedur 'Sayilar','Sayidddd'
Prosedürü oluşturup çalıştırdığınızda aşağıdaki gibi bir sonuç alacaksınız.
Görüldüğü üzere kolon içinde Sayi sütunu içinde bulunan değerlerin başında sıfır vardı. Bunların hepsini düzgün bir biçimde kaldırmış oldu.
Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.