使用WHERE子句将表的备份数据库列复制到主数据库

时间:2009-11-23 13:23:03

标签: sql restore

我犯了一个错误,我在我的主数据库(医院)做了错误的更新(tblPatientFile表中大多数患者的血型未知) 但我有一个每日备份数据库(hospitalRapor),今天之前患者的数据是真实的(大约有400000条记录)

我可以像这样复制我的旧数据吗? [医院]。[dbo]。[tblPatientFile]。[bloodTypeField] = [hospitalRapor]。[dbo]。[tblPatientFile]。[bloodTypeField] [医院]。[dbo]。[tblPatientFile]。[patientId] = [hospitalRapor]。[dbo]。[tblPatientFile]。[patientId]

我遇到麻烦的人,我必须在这一天解决这个问题。谢谢你的帮助

2 个答案:

答案 0 :(得分:1)

您没有说数据库服务器,所以我无法确定这是否可行,但我相信MSSQL上的语法将是:

UPDATE livefile
SET livefile.bloodtypefield=oldfile.bloodtypefieild
FROM [hospital].[dbo].[tblPatientFile] livefile
INNER JOIN [hospitalRapor].[dbo].[tblPatientFile] oldfile on livefile.patientid=oldfile.patientid

我强烈建议首先在测试数据库上运行,以确保它具有您想要的结果。您当然需要有权访问这两个数据库的用户,具体取决于您是否定义了可能需要很长时间才能在400k行上运行的触发器等。

答案 1 :(得分:0)

我认为你在同一台服务器上恢复了数据库,在这种情况下假设所有以前的数据都是正确的,尽管你会覆盖自你的错误以来所做的血型的任何更新。 / p>

我建议您在继续之前备份“错误”的数据库,这样可以纠正其他错误 - 轻松撤消,这样您至少可以回到初始的“错误”状态而不是复杂的问题。 / p>