我在想什麼最好的方法是將MDF文件(作爲活動實例上的備份生成)中的單個記錄還原到實時SQL Server數據庫中。從SQL Server 2008 MDF文件還原記錄的最快方法
我知道將文件附加到數據庫的過程,並且已經讀了很多關於完全恢復的內容,但是如何從一個表中選擇單個記錄並將其插回到實例上的同一個表中?
我總是可以從頭開始創建新記錄,基於select語句的結果行,但是我相信對於這樣一個簡單的任務必須有一個更智能和更清晰的方法。
非常感謝大家,期待您的回答。
乾杯。
我在想什麼最好的方法是將MDF文件(作爲活動實例上的備份生成)中的單個記錄還原到實時SQL Server數據庫中。從SQL Server 2008 MDF文件還原記錄的最快方法
我知道將文件附加到數據庫的過程,並且已經讀了很多關於完全恢復的內容,但是如何從一個表中選擇單個記錄並將其插回到實例上的同一個表中?
我總是可以從頭開始創建新記錄,基於select語句的結果行,但是我相信對於這樣一個簡單的任務必須有一個更智能和更清晰的方法。
非常感謝大家,期待您的回答。
乾杯。
取決於你有活的服務器上什麼樣的靈活性,你可以永遠只是附加備份數據庫以不同的名稱在現場或其他鏈接的服務器,然後就選擇直等效表你想記錄在活動數據庫中。
這是如何可行的完全取決於主鍵。如果它是一個自動生成的標識列,選擇它將給出一個不同的主鍵,這可能會對您可能想要添加的任何鏈接記錄產生不良結果,因此必須考慮新的主鍵。
查詢的例子
insert into originaldb.dbo.Persons
select * from backupdb.dbo.Persons where PersonId = '654G'
originaldb.dbo.Persons是要選擇到原始表。
backupdb.dbo.Persons是您恢復備份表。
你需要,如果你不選擇整行來修改這個查詢到,但是這是它的要點。
您不能簡單地從MDF文件中讀取記錄,您需要將其附加或還原到數據庫。
本地化,你不能。但是,Red Gate有一款名爲「虛擬還原」的產品,可讓您從備份安裝數據庫。
這是爲了現在還是爲了將來的規劃?如果是後者,那麼你可以利用數據庫快照。
感謝,這正是我想知道的。幸運的是,這是一個非常簡單的表結構,因此此插入時自動生成的特定記錄的ID不會被任何其他記錄引用。這樣的陳述會是什麼樣子?如果沒有選擇舊的標識,根本就SQL服務器生成一個新的,然後就從備份表中插入其他列這將是理想的。提前致謝! –
@mikelc - 修改了我的原始答案以包含一個簡單示例。 – hermiod