【发布时间】:2016-11-24 06:24:05
【问题描述】:
我有一个名为“populateProcessTypes”的存储过程,看起来像这样
Insert Into ProcessTypes(processTypeId, processCode, processName)
Select processTypeId, processCode, processName
From
(
Select 1 processTypeId, 'L_EMP' processCode, 'Load Employees' processName UNION
Select 2 processTypeId, 'L_CC' processCode, 'Load Cost Centres' processName UNION
Select 3 processTypeId, 'L_SUP' processCode, 'Load Supervisors' processName UNION
Select 4 processTypeId, 'R_CHK' processCode, 'Run Validation Checks' processName UNION
Select 5 processTypeId, 'R_CLN' processCode, 'Run Data Checks' processName
)
由于越来越多的开发人员在他们自己的开发环境中创建新流程,我们在合并到存储库时经常会遇到冲突或重要更改被覆盖。 例如,一位开发人员将添加
Select 6 processTypeId, 'R_NEW' processCode, 'Run New Process 1' processName
另一个会添加
Select 6 processTypeId, 'R_OTH' processCode, 'Run Other Process' processName
另一个可能会重命名进程:
Select 2 processTypeId, 'L_CC' processCode, 'Load Cost Centre Hierarchy' processName
我从来没有对将数据加载到 ProcessTypes 表中的方式完全满意,但是当我们只有一名开发人员负责时没有任何问题。 使用当前的方法,开发人员最终会花费太长时间相互检查数据库中应该包含哪些内容和不应该包含哪些内容,或者他们只是粗心并且内容被覆盖。
有没有更好的方法将所需的记录插入到 ProcessTypes 表中,从而减少冲突和覆盖?
我能想到的一件事是为每个 Process 类型设置一个只插入一条记录的过程,但我确信那里有更好的解决方案。
我们使用 SSDT 来管理数据库架构
【问题讨论】:
标签: database stored-procedures sql-server-data-tools merge-conflict-resolution