恢复delete 删除的数据
一次偶然的机会我看到 恢复SQLSERVER被误删除的数据》博文
原文地址为:http://www.cnblogs.com/lyhabc/p/3683147.html
我就很好奇的看了下,然后就是一头雾水 ,完全看不懂 。其实我并没打算把
这篇博文看懂,既然别人已经开发好了 ,直接拿来用就行了。
后来我就随便测试了下 ,发现以下几个问题
1.博文中作者说 支持 datetime类型,测试的结果发现 完全不对,得到的日期是不正确的
2.该数据恢复方式不支持date类型 。
后来我就自己摸索着修改作者写的sp , 修复以上两个问题 。
WHEN system_type_id = 61
THEN CONVERT(VARCHAR(MAX), CONVERT(DATETIME, CONVERT(VARBINARY(8000), substring(CONVERT(VARBINARY(8000), REVERSE(hex_Value)),4,1)+
SUBSTRING(CONVERT(VARBINARY(8000), REVERSE(hex_Value)),3,1)+
SUBSTRING(CONVERT(VARBINARY(8000), REVERSE(hex_Value)),5,4))),21) --DATETIME
WHEN system_type_id = 40
THEN CONVERT(VARCHAR(MAX), CONVERT(DATE, CONVERT(VARBINARY(8000), hex_Value)), 23)
WHEN CONVERT(INT, SUBSTRING(hex_Value, 1, 1)) = 61
THEN CONVERT(VARCHAR(MAX), CONVERT(DATETIME, CONVERT(VARBINARY(8000), REVERSE(SUBSTRING(hex_Value,3, LEN(hex_Value))))), 21) --DATETIME
WHEN CONVERT(INT, SUBSTRING(hex_Value, 1,1)) = 40
THEN CONVERT(VARCHAR(MAX), CONVERT(DATETIME, CONVERT(VARBINARY(8000), REVERSE(SUBSTRING(hex_Value,3,LEN(hex_Value))))), 23) --date
这是我修改的代码.