2016-10-10 5 views
0

現在、単純なスクリプトを使用してテーブルに新しいレコードを作成しています。別のテーブルの参照列を挿入する

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

しかし、私たちのテーブル構造を変更した場合、列 "color"はもはやvarcharではなく参照IDになり、すべての色は別々のテーブルに保持され、参照IDフォームをその色テーブルに挿入するだけで済みます。特定の色でクエリだけでなく、SQL? SQL Serverの場合には

答えて

0

、あなたのProductテーブルは、インメモリー表ではありませんならば、あなたがそれに新しい列を追加することができます。

ALTER TABLE PRODUCT ADD ColorID int 

次に、あなただけの、対応するIDを移入するUPDATEを発行Productテーブルの新しいColorID列の色です。あなたが本当にしたい場合は

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

その後、古いCOLOR列を削除し、Colorに現在ColorID列の名前を変更することができます。

ただし、事前にこれを計画する必要があります。そして、一般的に、カラーテーブルははるかに理にかなっています。

関連する問題