|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
对于insert操作,只需要把event_type改成DELETE_ROWS_EVENT;对于delete操作,改成WRITE_ROWS_EVENT创立|技能要创立一个能够每一个小时呈报的查询,起首要创立一个表格。该表格一列纪录日期,而没偶然间信息;另外一列纪录钟点。上面的表格有一列纪录了分歧的处置范例。比方,我们能够按小时找出处置范例的总数。
CREATETABLEtest
(StartTimeDATETIMENOTNULL
DEFAULTCURRENT_TIMESTAMP,
StartDateDATETIMENOTNULL
DEFAULTCONVERT(DATETIME,CONVERT(CHAR(10),CURRENT_TIMESTAMP,110)),
StartHourINTNOTNULL
DEFAULTDATEPART(hh,CURRENT_TIMESTAMP),
TranTypeINTNOTNULL
CONSTRAINTck_TranTypeCHECK(TranTypeIN
(
1,--insert
2,--update
3,--delete
)
DEFAULT1
)
GO
接上去,拔出test的数据来摹拟一个大概的样本。
INSERTtest(StartTime,TranType)VALUES(CURRENT_TIMESTAMP,3)
INSERTtest(StartTime,TranType)VALUES(CURRENT_TIMESTAMP,2)
INSERTtest(StartTime,TranType)VALUES(CURRENT_TIMESTAMP,3)
GO
DECLARE@hrint
SET@hr=DATEPART(hh,DATEADD(hh,-1,CURRENT_TIMESTAMP))
INSERTtest(StartTime,TranType,StartHour)_
VALUES(DATEADD(hh,-1,CURRENT_TIMESTAMP),3,@hr)
INSERTtest(StartTime,TranType,StartHour)_
VALUES(DATEADD(hh,-1,CURRENT_TIMESTAMP),1,@hr)
INSERTtest(StartTime,TranType,StartHour)_
VALUES(DATEADD(hh,-1,CURRENT_TIMESTAMP),2,@hr)
GO
然后用一个查询来找出按日和小时的处置总数。
SELECTStartDatetran_day,
StartHourtran_hour
,CASEtrantypeWHEN1THENinsert
WHEN2THENupdate
WHEN3THENdelete
ELSEunknown
ENDtrantype,
COUNT(*)tran_total
FROM
Test
GROUPBY
StartDate,
StartHour
,trantype
ORDERBYStartDate,StartHour
COMPUTESUM(COUNT(*))BYStartDate,StartHour
GO
往失落test能够清空test表格。
DROPTABLEtest
GO
有了数据以后,我们就要想一个比较统一的方法来闪回。上面我们说了对于DML操作,可以通过反向执行所有逆操作来实现,对于语句里面的DDL,只能直接跳过。原因是一个DDL不一定有直接的逆操作。 |
|