J'essaie de trouver le meilleur Transact-SQL pour transformer des tables non relationnelles en tables plus relationnelles, et prendre en charge les clés étrangères.T-SQL - créer une nouvelle relation de clé étrangère à partir de données non normalisées
Supposons que j'ai une table FRUITS
Id Name USState
1 Apple Washington
2 Pineapple Hawaii
3 Orange Florida
4 Peach Georgia
etc
Je veux que les États soient leur propre table avec un identifiant et Nom:
INSERT INTO USSTATE (Name) Select DISTINCT USState from FRUIT
Maintenant, j'ai tableau USState
Id Name
1 Alabama
2 Alaska
etc.
Comment puis-je maintenant mettre à jour la valeur USState dans la table FRUIT pour pointer vers l'ID de USSTATE récursivement?
je peux le faire Etat par Etat
DECLARE @USSTATE nvarchar(100)
Set @USSTATE = 'Alabama'
Update FRUIT Set USState = (SELECT Id from USSTATE where Name like @USSTATE)
Set @USSTATE = 'Alaska' -- do this for each State? Arghh!!!
etc etc
, mais je veux le faire récursive. Merci pour toute aide?
Oui je suis d'accord, je ne cherchais qu'à fournir un exemple simple. Le problème actuel a d'autres aspects plus complexes. Merci! –