2009-04-03 3 views
0

j'ai une base de données par nom database1 et il contient un tableau par nom de l'employé Dans le tableau des employés ont de nombreux domaines comme employé, le nom, le salaire, etc., etc.valeurs de vente de database2 à ma base de données actuelle

par erreur i Je change la valeur du salaire 0 pour tous les employés.

Je suis restaurer la base de la sauvegarde par nom database2

Maintenant, je besoin d'aide pour mettre à jour ma base de données actuelle qui est database1

Je veux mettre la valeur colonne Salaire employé de table de database2 à mon courant base de données qui est database1 dans la même colonne salariale de table employee.

commun dans la table des deux employés, il contient une colonne employee qui est commune.

sql server 2005 en utilisant

+0

préciser votre base de données peut-être? –

+0

Quel SGBD - comme Mitch l'a demandé aussi. Parce que les notations inter-bases de données sont complètement non standardisées, elles sont donc très importantes. –

Répondre

0

Vous allez avoir besoin de faire une requête de base de données croix, ci-dessous est un exemple.

hypothèses

  1. Ceci est couru sur Database1 avec un compte qui a accès à Database2
  2. Le tableau Database2 dans dans le schéma dbo
  3. Vous avez des sauvegardes complètes de tout
  4. Le champ EmployeeId est la clé primaire de la table

Requête Cette requête fonctionne sur MS SQL Server et a été testée, mais SOYEZ SÛR D'AVOIR DES SAUVEGARDES juste au cas où !!

UPDATE Employee 
SET Salary = b.Salary 
FROM Employee A 
    INNER JOIN database2.dbo.Employee B 
     ON (A.EmployeeId = B.EmployeeId) 
+0

Msg 4104, niveau 16, état 1, ligne 1 L'identificateur en plusieurs parties "A.salary" n'a pas pu être lié. –

+0

a mis à jour l'enregistrement –

2
UPDATE database1.employees 
SET salary = e2.salary 
FROM database1.employees AS e1 
INNER JOIN database2.employees AS e2 
    ON e2.employeecode = e1.employeecode 
+0

Msg 208, niveau 16, état 1, ligne 1 Nom d'objet incorrect 'database1.employees'. –

+0

essayez d'ajouter dbo. dans les noms de table de façon à ce qu'il soit databasename.dbo.tablename (par exemple, database1.dbo.employees) bien sûr que supposons que dbo possède vos tables ... – mundeep

Questions connexes