如何为Microsoft SQL Server现有表添加关联UNIT表的外键列
解决步骤(Microsoft SQL Server)
1. 向MEASURE表添加用于关联的外键列
首先在MEASURE表中新增一个与UNIT表id类型匹配的整数列,建议命名为unit_id:
ALTER TABLE MEASURE ADD unit_id INT;
2. 更新新列的值,匹配UNIT表的对应id
通过JOIN关联两张表,将MEASURE表原units字段对应的UNIT表id写入新列:
UPDATE m SET m.unit_id = u.id FROM MEASURE m JOIN UNIT u ON m.units = u.units;
3. (可选)删除原有的units字段
如果不再需要保留字符串形式的单位名称,可删除原字段:
ALTER TABLE MEASURE DROP COLUMN units;
注意:执行此操作前请确认数据已完全迁移至新列,且无其他业务逻辑依赖该字段。
4. 添加外键约束,建立正式关联
为unit_id列添加外键约束,确保数据引用的合法性:
ALTER TABLE MEASURE ADD CONSTRAINT FK_MEASURE_UNIT FOREIGN KEY (unit_id) REFERENCES UNIT(id);
完成以上操作后,MEASURE表就通过unit_id字段与UNIT表的id字段建立了外键关联,实现你想要的关联效果。
内容的提问来源于stack exchange,提问作者Qmails
相关产品推荐
相关产品推荐

