SQLServer 恢複delete 刪除的資料

來源:互聯網
上載者:User

標籤: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 刪除的資料

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.