从另一个表插入引用列

时间:2016-10-10 16:57:13

标签: sql

我目前正在使用简单的脚本在表格中创建新记录。

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

但是如果我们改变我们的表结构,即。专栏"颜色"将不再是一个varchar而是一个引用id,并且所有颜色都将保存在一个单独的表中,我们只需要插入一个颜色表的引用id表单,我该如何处理和更新我的insert sql以及按特定颜色查询?

1 个答案:

答案 0 :(得分:0)

对于SQL Server,如果您的Product表不是内存表,那么您可以使用以下内容向其添加新列:

ALTER TABLE PRODUCT ADD ColorID int

然后,您只需发出UPDATE来填充ColorID表的新Product列中颜色的相应ID。

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

然后,如果您真的想要,可以删除旧的COLOR列并将当前ColorID列重命名为Color

但是,您应该提前计划。通常,颜色表更有意义。

相关问题