【发布时间】:2015-12-29 13:20:56
【问题描述】:
我有以下 示例 场景,我正在寻找一种方法如何在 Sql Server 数据库项目中进行正确升级。
我有 4 张桌子:
- 汽车颜色
- 身份证
- 颜色代码
- 汽车
- 身份证
- CarColor_Id
- 卡车
- 身份证
- TruckColor_Id
- 卡车颜色
- 身份证
- 颜色代码
TruckColors 和 CarColors 是相同的,所以我想重构它。
期望的改变:
- 将
CarColors重命名为ColorCodes - 将
Cars.CarColor_Id重命名为Cars.ColorCode_Id - 创建
Trucks.ColorCode_Id外键到ColorCodes -
根据
Trucks.TruckColor_Id的信息填写'Trucks.ColorCode_Id' - 删除
Trucks.TruckColor_Id列 - 删除
TruckColors表
我只能做 PostDeploy 或 PreDeploy 但那是:
- 提前因为在迁移之前
Trucks.ColorCode_Id不存在。 - 太晚了,因为
Trucks.TruckColor_Id已经被删除了
所以在升级过程中,我想运行这个特定的脚本:
UPDATE truck
SET truck.ColorCode_Id = newcolor.Id
FROM Trucks truck
INNER JOIN TruckColors truckcolor ON truck.TruckColor_Id = truckcolor.Id
INNER JOIN ColorCodes newcolor ON truckcolor.ColorCode = newcolor.ColorCode
数据已经在生产中,因此不会发生数据丢失。 如何使用 Sql Server 数据库项目 实现这一目标?
【问题讨论】:
-
您坚持以下哪些步骤?我不明白你的确切问题是什么。
标签: sql-server database sql-server-data-tools