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.

T-Sql Tarih Döngüsü | MsSql

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.