La normalizzazione dei dati
-
23-08-2019 - |
Domanda
Ho bisogno di aggiornare il campo ManagerID con il relativo EmployeeID.
CREATE TABLE Employee(
EmployeeID Int Primary Key Identity,
Name Varchar(50),
ManagerID INT default 0,
ManagerName Varchar(50) default ''
)
INSERT INTO Employee(Name,ManagerName) VALUES('Dilbert','Boss')
INSERT INTO Employee(Name,ManagerName) VALUES('Boss','Dogbert')
INSERT INTO Employee(Name) VALUES('Dogbert')
SELECT * FROM Employee
GO
-- This is the update stmt I need help with
UPDATE Employee
SET ManagerID=EmpID
WHERE ManagerName = Name
Soluzione
È possibile aderire sul tavolo dei dipendenti per trovare id di un manager:
UPDATE emp
SET ManagerID = boss.EmployeeID
FROM Employee emp
INNER JOIN Employee boss
ON boss.Name = emp.ManagerName
Si tenga presente che la memorizzazione sia il nome del manager e l'ID del manager in una riga dipendente viola terza forma normale .
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow