2016-10-10 7 views
0

Ich verwende derzeit einfaches Skript, um einen neuen Datensatz in einer Tabelle zu erstellen.Referenzspalte aus einer anderen Tabelle einfügen

insert into PRODUCT(name,color) values('product1','red'); 

Aber was, wenn wir unsere Tabellenstruktur ändern, dh. Die Spalte "Farbe" wird nicht länger ein Varchar sein, sondern eine Referenz-ID, und die gesamte Farbe wird in einer separaten Tabelle verwaltet. Wir müssen lediglich eine Referenz-ID-Form in diese Farbtabelle einfügen, wie kann ich meine Einfügung handhaben und aktualisieren SQL sowie die Abfrage nach bestimmten Farben?

Antwort

0

Bei SQL Server, wenn Ihre Product Tabelle ist kein In-Memory-Tabelle, dann können Sie eine neue Spalte mit hinzuzufügen:

ALTER TABLE PRODUCT ADD ColorID int 

Dazu einfach ein UPDATE geben Sie die entsprechenden IDs zu füllen für Farben in der neuen ColorID Spalte der Product Tabelle.

UPDATE P 
SET P.ColorID = C.ID 
FROM PRODUCT P 
    INNER JOIN COLORS C ON P.COLOR = C.ColorName 

Dann, wenn Sie wirklich wollen, können Sie die alte COLOR Spalte löschen und die aktuelle ColorID Spalte Color umbenennen.

Aber Sie sollten dies im Voraus planen. Und im Allgemeinen ist eine Farbtabelle viel sinnvoller.

Verwandte Themen