Как определить, что моя таблица была обновлена ​​в SQL Server - PullRequest
1 голос
/ 04 октября 2011

У меня есть таблица в SQL Server 2005. Вчера было выполнено обновление таблицы, а затем обновлено до исходной записи.
Теперь я хочу выяснить, какие были обновленные значения. По крайней мере, я хочу узнать, было ли оно действительно обновлено или нет.
Есть ли способ определить, что я хочу из журналов транзакций?
Спасибо.

Ответы [ 2 ]

2 голосов
/ 04 октября 2011

Хотя не является точным методом (например, у вас есть данные только с последнего перезапуска SQL Server), вы можете попробовать использовать sys.dm_exec_query_stats view:

CREATE TABLE dbo.LongTableName (ID INT IDENTITY(1,1) PRIMARY KEY, Column1 VARCHAR(10) NOT NULL);

INSERT LongTableName VALUES ('A');
INSERT LongTableName VALUES ('BB');
INSERT LongTableName VALUES ('CCC');
WAITFOR DELAY '00:00:05';
INSERT LongTableName VALUES ('DDDD');
GO

SELECT  ca.[text], s.last_execution_time, s.last_logical_reads, s.last_logical_writes, s.execution_count 
FROM    sys.dm_exec_query_stats s
CROSS APPLY sys.dm_exec_sql_text(s.sql_handle) ca
WHERE   ca.[text] LIKE '%INSERT%LongTableName%'
GO

DROP TABLE LongTableName;
GO

Например, одна из записей будет:

text    last_execution_time     last_logical_reads  last_logical_writes execution_count
(@1 varchar(8000))INSERT INTO [LongTableName] values(@1)    
        2011-10-04 10:51:17.070 2                   0                   4
2 голосов
/ 04 октября 2011

Существует недокументированная команда :

Журнал DBCC (имя_базы, 0 | 1 | 2 | 3 | 4)

, где

0: минимальная информация (по умолчанию)

1: возвращает информацию, доступную с использованием флагов 0 +, тегов и длины записи журнала.

2: возвращает информацию, доступную с использованием 1 + объекта, индекса, идентификатора страницы и идентификатора слота.

3: Максимальная информация о каждой операции.

4: Максимальная информация о каждой операции + шестнадцатеричный дамп текущей строки журнала транзакций

И читать это: Поиск средства просмотра файлов журнала транзакций SQL

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...