2016-10-10 47 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

但是,您应该提前计划。一般来说,颜色表格更有意义。