0

私は間違いを犯し、メインデータベース(病院)で間違った更新を行いました(tblPatientFileテーブルのほとんどの患者の血液型は不明です)が、毎日のバックアップデータベース(hospitalRapor)があり、データは今日より前の患者に当てはまります(そしてそれは約400000レコードです)

このように古いデータをコピーできますか[hospital]。[dbo]。[tblPatientFile]。[bloodTypeField]=[hospitalRapor]。[dbo]。[tblPatientFile]。[bloodTypeField]where[hospital]。[dbo]。[ tblPatientFile]。[patientId]=[hospitalRapor]。[dbo]。[tblPatientFile]。[patientId]

私は困っている人たちです、私はこの日にこの状況を修正しなければなりません。助けてくれてありがとう

4

2 に答える 2

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行で実行するのに長い時間がかかる場合があります。

于 2009-11-23T14:35:14.163 に答える
0

同じサーバー上にデータベースを復元していると思います。この場合、エラー以降に行われた血液型の更新は上書きされますが、以前のすべてのデータが正しいと仮定すると、可能です。

先に進む前に「誤った」データベースもバックアップして、追加の間違いを修正できるようにすることをお勧めします。簡単に元に戻せるので、問題を悪化させるのではなく、少なくとも最初の「エラー」状態に戻ることができます。

于 2009-11-23T13:28:56.603 に答える