2010-09-22 6 views
1

Tentative d'exécution d'une mise à jour d'un seul champ où la base de données actuelle souhaite extraire des valeurs de la sauvegarde de la nuit dernière. Devrait être quelque chose près de:Instruction de mise à jour impliquant deux catalogues différents

update myTable 
    set status = (select status 
        from .lastBackup.dbo.myTable as t 
        where t.idField = idField) 

Aide?

+0

Structure de la table/s en question et des exemples de données serait aiderait. – Oded

+0

En supposant que vous parlez d'une sauvegarde SQL "normale", alors non, ce catalogue n'est pas accessible via TSQL sans faire une restauration complète. Si cette "sauvegarde" existe déjà en tant que base de données sur le même serveur, la syntaxe de Joe est correcte. – BradC

+0

structure serait implicite comme identique par référence à «la sauvegarde de la nuit dernière» figurait plus aurait juste devenir dans le chemin – justSteve

Répondre

5

Essayez ceci:

update t 
    set status = b.status 
    from myTable t 
     inner join lastBackup.dbo.myTable b 
      on t.idField = b.idField 
+1

+1: me battre de 43 secondes ... –

+0

@OMG - J'aime la précision de cette réponse ... – JNK

+0

vous devez bière ou mieux. – justSteve