码迷,mamicode.com
首页 > 数据库 > 详细

SQLServer 恢复delete 删除的数据

时间:2014-10-22 06:30:05      阅读:208      评论:0      收藏:0      [点我收藏+]

标签:sqlserver   数据恢复


恢复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


这是我修改的代码.


本文出自 “SQLServer MySQL” 博客,请务必保留此出处http://dwchaoyue.blog.51cto.com/2826417/1566483

SQLServer 恢复delete 删除的数据

标签:sqlserver   数据恢复

原文地址:http://dwchaoyue.blog.51cto.com/2826417/1566483

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!