SQL-Server 处理新旧备份间转移数据

因为历史因素,当前数据库里少了一些数据(被删了),但现在又需要把它找回来,所幸还存有之前数据库的完整备份,而里面有我要的数据。

处理流程:

  1. 另外找一台服务器把旧的备份档回存,查询确认是否有你所需数据。

  2. 把这个旧的数据库重新命名(数据库名称、档案逻辑名称)后,再做一个完整备份。

  3. 把更名后的旧数据库还原到生产环境的服务器,回存时注意要变更回存的档案路径与档名(预设的很可能会跟生产环境的数据库相同)。

  4. 执行下列SQL把旧数据库里的数据操到生产环境。

    -- 先把允許將明確的值插入資料表的識別欄位
    SET IDENTITY_INSERT <table_name> ON;
    GO
    
    -- 用ID栏位跨库查询缺失的数据,直接Insert到生产环境数据库
    INSERT INTO [<table_name>]([ID], [OtherField1],[OtherField2],[OtherField3],[OtherFieldElse]) 
    SELECT [ID], [OtherField1],[OtherField2],[OtherField3],[OtherFieldElse]
    FROM backup_database_name.dbo.<table_name> o
    WHERE o.ID NOT IN (SELECT ID FROM <table_name>)
    GO
    
    -- 关闭允許將明確的值插入資料表的識別欄位
    SET IDENTITY_INSERT <table_name> OFF;
    GO
    
  5. 完成。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容