我在sql server 2005中有一个表。昨天在表上执行了更新,然后更新回原始记录。
现在我想弄清楚更新的值是什么。至少我想知道它是否真的更新了。
有什么方法可以从交易日志中确定我想要的东西吗?
感谢。
答案 0 :(得分:2)
DBCC日志(dbname,0 | 1 | 2 | 3 | 4)
其中
0:最低限度信息(默认)
1:使用0 +返回可用信息 标志,标签和日志记录长度。
2:使用返回信息 1 +对象,索引,页面ID和插槽ID。
3:关于的最大信息 每次操作。
4:每项操作的最大信息+ 当前事务日志行的十六进制转储
答案 1 :(得分:2)
虽然不是一个精确的方法(例如,您只有上次重启SQL Server的数据),但您可以尝试使用sys.dm_exec_query_stats
视图:
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