T-Sql Tarih Döngüsü | MsSql
Merhaba, CANIAS tarafında çok fazla yer kaplayan e-fatura tablosunu zaman zaman yedeklemek ve geçmiş yılı silmek veritabanı boyutunda ciddi rahatlama sağlıyor.
Bunun için bir tarih döngüsüne ihtiyaç duydum. Topluca atmaya çalıştığımda çok uzun sürdü ve hatta bitmedi. Bu şekilde uzun da sürse işlemi gerçekleştirebildim.
Birilerinin işine yarayabilir diyerek buraya bırakıyorum:
SET DATEFORMAT YMD
GO
DECLARE @BaslangicTarihi DATE = '2019-01-01';
DECLARE @BitisTarihi DATE = '2019-12-31';
WHILE (@BaslangicTarihi <= @BitisTarihi) BEGIN
INSERT INTO CANIASDBARSIV.dbo.IASEDIEINVOMSGQ
SELECT *
FROM CANIASDB.dbo.IASEDIEINVOMSGQ WITH (NOLOCK)
WHERE CLIENT = '00'
AND DOCDATE = @BaslangicTarihi
SET @BaslangicTarihi = DATEADD(DAY, 1, @BaslangicTarihi);
END;
SET @BaslangicTarihi = '2019-01-01';
SET @BitisTarihi = '2019-12-31';
WHILE (@BaslangicTarihi <= @BitisTarihi) BEGIN
DELETE
FROM CANIASDB.dbo.IASEDIEINVOMSGQ
WHERE CLIENT = '00'
AND DOCDATE = @BaslangicTarihi
SET @BaslangicTarihi = DATEADD(WEEK, 1, @BaslangicTarihi);
END;
Selamlar.