博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
sys.fn_dblog
阅读量:5135 次
发布时间:2019-06-13

本文共 1356 字,大约阅读时间需要 4 分钟。

sys.fn_dblog返回当前数据库日志的活动部分的内容

use
 db1
go
if
 
exists
(
select
 
1
 
from
 sys.tables 
where
 name
=
'
t
'
)
    
drop
 
table
 t
go
create
 
table
 t(col 
int
)
go
dbcc
 traceon(
3505
-
1
)---disable automatic checkpoint behavior
go
checkpoint
go
select
 
[
Current LSN
]
,
[
Previous LSN
]
,
[
Previous Page LSN
]
,PartitionId, Operation,Context,
[
Transaction ID
]
,
[
Log Record Fixed Length
]
,
[
Log Record Length
]
 
from
  sys.fn_dblog(
null
,
null
)
go
insert
 
into
  t 
values
(
1
)
--
go
select
 
[
Current LSN
]
,
[
Previous LSN
]
,
[
Previous Page LSN
]
,PartitionId, Operation,Context,
[
Transaction ID
]
,
[
Log Record Fixed Length
]
,
[
Log Record Length
]
 
from
  sys.fn_dblog(
null
,
null
)—
-
sql server need 
to
 allocate 
space
 
for
 the new 
table
go
checkpoint
go
insert
 
into
  t 
values
(
1
)—
-
 
go
select
 
[
Current LSN
]
,
[
Previous LSN
]
,
[
Previous Page LSN
]
,PartitionId, Operation,Context,
[
Transaction ID
]
,
[
Log Record Fixed Length
]
,
[
Log Record Length
]
 
from
  sys.fn_dblog(
null
,
null
)—
-
only
 
insert
 operation
复制代码

 

 

 

数据库的insert,udpate,delte操作会记录在日志里,

对于insert操作,会产生after image,也就是变更后的结果,

对于delete/update操作,会产生before image(记录变更前的信息)和after image(记录变更后的信息)

 

通过before image和 after image就可以找到数据变更前和变更后的状态,从而用于数据库恢复,或者事物的回滚。

你可以进行一些insert,update,deltet操作,观察

[RowLog Contents 0]

,[RowLog Contents 1]

转载于:https://www.cnblogs.com/qanholas/archive/2012/01/05/2313386.html

你可能感兴趣的文章
ZJOI2018游记Round1
查看>>
侧边栏广告和回到顶部
查看>>
使用@property
查看>>
linux文件系统下的特殊权限
查看>>
day9
查看>>
Django(admin)
查看>>
针对express新version,通过Node.js, Express, Ejs, Mongodb搭建一个简单的web应用。可实现用户的查看和增加。...
查看>>
sigaction
查看>>
基础知识回顾系列
查看>>
外键约束
查看>>
RMAN数据库异机迁移步骤
查看>>
mysql metadata lock
查看>>
编程的32个算法
查看>>
CSS:CSS定位和浮动
查看>>
Java:基本数据类型包装类
查看>>
Java:IO流之字节流InputStream、OutputStream详解
查看>>
216 Combination Sum iii
查看>>
杭电1159 Common Subsequence【最长公共子序列】
查看>>
UVa 11464 Even Parity
查看>>
第二周 9.5 --- 9.11
查看>>