On SQL Server perspective, reading transaction log is not supported and the related code is not released to public. However, it is possible on the code level as some SQL Server feature need it. For example, log reader agent in transactional replication.
We have the following ways to view the transaction log.
1. Log Explorer utiity provided by Lumigent
Log Explorer for SQL Server
http://www.lumigent.com/products/le_sql.html
2. DBCC LOG (database)
Allows you to view the transaction log for the database you specify. Like this: DBCC log ( {dbid|dbname}, [, type={-1|0|1|2|3|4}] )
PARAMETERS:
Dbid or dbname - Enter either the dbid or the name of the database in question.
type - is the type of output:
0 - minimum information (operation, context, transaction id)
1 - more information (plus flags, tags, row length)
2 - very detailed information (plus object name, index name, page id, slot id)
3 - full information about each operation
4 - full information about each operation plus hexadecimal dump of the current transaction log's row.
-1 - full information about each operation plus hexadecimal dump of the current transaction log's row, plus Checkpoint Begin,DB Version, Max XACTID
by default type = 0
Sample:
DBCC LOG(NOrthwind)
3. Non-documented function fn_dblog in SQL 2000
-- entire tlog
select * from ::fn_dblog(NULL, NULL)
-- selection of tlog
select * from ::fn_dblog('129:148:1', '129:150:6')
Note: 129:148:1 is LSN
Select * from ::fn_dblog('', '') where [Begin Time] >= '02/03/05'
Thanks and regards,
Michael