Я следующий примера сценария и я искал способ, как сделать правильное обновление в базе данных в Sql Server, Project.SSDT Обновления данных при обновлении схемы
У меня есть 4 таблицы:
- CarColors
- Id
- ColorCode
- Автомобили
- Id
- CarColor_Id
- Грузовики
- Id
- TruckColor_Id
- TruckColors
- Id
- ColorCode
TruckColors
и CarColors
идентичны, поэтому я хочу реорганизовать это.
Нужные изменения:
- Переименуйте
CarColors
вColorCodes
- Переименовать
Cars.CarColor_Id
вCars.ColorCode_Id
- Создать
Trucks.ColorCode_Id
внешний ключ кColorCodes
- Заливка 'Trucks.ColorCode_Id' на основе информации
Trucks.TruckColor_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
данных уже в производстве, так не должно происходить не dataloss. Как я могу достичь этого с помощью Проекты базы данных сервера Sql?
Какой из этих шагов вы застряли на? Я не понимаю, каков ваш точный вопрос. –