3 sql-server-2008 sql-server-2008-r2
我有一个数据库的完整备份,我想从旧备份更新当前数据库中某个表中的一些记录,而不影响其他记录。
做这个的最好方式是什么?
基本上我想从旧备份中获取一些记录将旧值更新到当前数据库而不进行恢复,我有什么选择?
小智 6
你不能访问数据库中备份的记录,而不将其恢复到一个数据库中。但是,您可以将其还原到与备份它的数据库不同的数据库。
以下链接说明了如何使用 Transact-SQL 执行此操作:http : //msdn.microsoft.com/en-us/library/ms190447(v=sql.105).aspx
在管理工作室:http : //msdn.microsoft.com/en-us/library/ms177429(v=sql.105).aspx
然后一旦你有了新的数据库,你就可以编写 SQL 来加入这两个实例(显然需要首先考虑安全因素)。例如
SELECT Table1.*, Table1_Backup.* FROM Table1
INNER JOIN DB_Restore.dbo.Table1 AS Table1_Backup ON Table1.ID = Table1_Backup.ID
Run Code Online (Sandbox Code Playgroud)
或类似。
正如@Flem 提到的,您可以使用 MERGE 语句来合并两个数据集,但是您想要。