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.

Leave a Reply

Your email address will not be published. Required fields are marked *