2016-10-10 48 views
0

我目前使用簡單的腳本在表中創建一條新記錄。從另一張表中插入參考列

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

但是,如果我們改變我們的表結構,也就是說, 「color」列不再是一個varchar而是一個引用id,並且所有的顏色都將保存在一個單獨的表中,並且我們只需要插入一個引用id表格的那個顏色表,我該如何處理和更新我的插入SQL以及按特定顏色查詢?

回答

0

在SQL Server的情況下,如果你的Product表不是在內存中的表,那麼你可以將它添加一個新的列有:

ALTER TABLE PRODUCT ADD ColorID int 

然後你只需發出UPDATE來填充相應的ID用於Product表格的新ColorID列中的顏色。

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

然後,如果你真的想,你可以刪除舊COLOR列和當前ColorID列重命名爲Color

但是,您應該提前計劃。一般來說,顏色表格更有意義。