How to Get Changed Row Count in a Log Data File

This code helps you to show how many rows are deleted, inserted or updated that read from database log file.

Declare @tableName as Varchar(100);
Set @tableName = 'SampleTableName';

Select
Sum((Case When Operation ='LOP_INSERT_ROWS' Then 1 End)) [Rows Inserted]
,Sum((Case When Operation ='LOP_MODIFY_ROW' Then 1 End)) [Rows Updated]
,Sum((Case When Operation ='LOP_DELETE_ROWS' Then 1 End)) [Rows Deleted]
From ::fn_dblog(null, null) logdata
inner Join
(
Select [Transaction id],[End Time]
From ::fn_dblog(null, null) sub1
Where
Operation='LOP_COMMIT_XACT'
And Exists
(
SELECT [Transaction id]
FROM ::fn_dblog(null, null) sub2
Where
allocUnitName + '.' Like '%.' + @tableName + '.%'
and sub1.[Transaction id]=sub2.[Transaction id]
)
) commitedtran on commitedtran.[Transaction id] = logdata.[Transaction id]
And commitedtran.[End Time] between CAST('10/21/2007' AS DATETIME) and CAST('1/1/2008' AS DATETIME)

Reklamlar
sql içinde yayınlandı

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Google fotoğrafı

Google hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Connecting to %s