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

2021-02-23  本文已影响0人  哎呦_Jason

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

处理流程:

  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. 完成。

上一篇 下一篇

猜你喜欢

热点阅读