2009-11-23 7 views
0

Je fais une erreur et j'ai fait une mauvaise mise à jour de ma base de données principale (hôpital) (les groupes sanguins étaient inconnus pour la plupart des patients dans le tableau tblPatientFile) J'ai une base de données de sauvegarde quotidienne (hospitalRapor) et les données sont vraies pour les patients avant aujourd'hui (et il est d'environ 400000 enregistrements)Copier la colonne de la base de données de sauvegarde vers la base de données principale avec les clauses WHERE

puis-je copier mes anciennes données de comme [hôpital]. [Dbo]. [TblPatientFile] [bloodTypeField] = [hospitalRapor]. [dbo]. [tblPatientFile]. [bloodTypeField] où [hôpital]. [dbo]. [tblPatientFile]. [patientId] = [hospitalRapor]. [dbo]. [tblPatientFile]. [patientId]

Je suis en difficulté les gars, je dois régler cette situation en ce jour. Merci pour aider

Répondre

1

Vous ne dit pas un serveur de base de données, donc je ne peux pas être sûr que cela fonctionnera, mais je crois que la syntaxe sur MSSQL serait:

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

Je recommande fortement en cours d'exécution sur une base de données de premier test pour s'assurer qu'il a les résultats que vous voulez. Vous aurez bien sûr besoin d'un utilisateur qui a accès aux deux bases de données et dépendant si vous avez des triggers, etc., qui peuvent prendre beaucoup de temps pour s'exécuter sur 400k lignes.

0

Je suppose que vous avez une restauration de la base de données sur le même serveur, auquel cas, si toutes les données précédentes étaient correctes, vous pourriez, même si vous écraseriez les mises à jour du groupe sanguin faites depuis votre erreur Je suggère que vous sauvegardiez également votre base de données «incorrecte» avant d'aller plus loin, de sorte que les erreurs supplémentaires peuvent être rectifiées - annulées facilement afin que vous puissiez au moins retourner à l'état initial d'erreur au lieu de composer des problèmes.

+0

oui je prends la liste des groupes sanguins de la base de données de sauvegarde, et l'enregistre dans un fichier excell – Rapunzo