SELECT CONVERT(varchar(MAX), [RowLog Contents 0]),
CONVERT(varchar(MAX), [RowLog Contents 1]),
CONVERT(varchar(MAX), [RowLog Contents 2]),
CONVERT(varchar(MAX), [RowLog Contents 3]),
CONVERT(varchar(MAX), [RowLog Contents 4]),
CONVERT(varchar(MAX), [RowLog Contents 5])
FROM sys.fn_dblog
(NULL, NULL)
WHERE operation IN
('LOP_INSERT_ROWS') and [Transaction ID] = '0000:001496ee' ;
SELECT [Transaction ID],
CONVERT(varchar, [RowLog Contents 0]),
CONVERT(varchar, [RowLog Contents 1]),
CONVERT(varchar, [RowLog Contents 2]),
CONVERT(varchar, [RowLog Contents 3]),
CONVERT(varchar, [RowLog Contents 4]),
CONVERT(varchar, [RowLog Contents 5])
FROM sys.fn_dblog (NULL, NULL)
WHERE operation = 'LOP_INSERT_ROWS'
Работает. А у вас?Для каждого типа транзакций используются разные столбцы, для того, чтобы получить нужную вам информацию вы должны точно знать какие столбцы используются для каких транзакций, а сделать это не просто, так, как официальной документации с описанием нет.
Вставленные и удаленные строки хранятся в шестнадцатеричных значениях. Для того, чтобы вытащить данные из этих значений вы должны знать формат хранения, понимать биты состояний, знать общее количество столбцов и так далее.
данные в hex значении мне не понятныВ сети есть описание структур [RowLog Contents 0], например: Forensics или Decoding a Simple Update Statement Within the Tran... и пр.
CONVERT(VARCHAR,[RowLog Contents 0],2)
.