首页 > 数据库技术 > 详细

SQLServer 恢复delete 删除的数据

时间:2014-10-22 06:28:53      阅读:359      评论:0      收藏:0      [点我收藏+]


恢复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 删除的数据

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!