我正在使用 VS 2019 并使用 Schema Compare 比较 2 个数据库。大多数情况下,它可以很好地发现差异并复制它们。但是,在某些存储过程中,由于缺少模式名称,它会突出显示差异。例如 [dbo]
例子:
左面板(本地数据库)
CREATE Procedure MyNewProcedure
(
@prmParam1 int
)
Select * from TableA where Id = @prmParam1
在右侧面板(远程数据库)上,它正确显示了架构名称:
CREATE Procedure [dbo].[MyNewProcedure]
(
@prmParam1 int
)
Select * from TableA where Id = @prmParam1
如果我运行更新,它将创建此存储过程的另一个版本,但它不属于 dbo 模式 - 它将采用连接的模式名称。
它只对少数存储过程执行此操作。其余的都添加了[dbo]。到每个 create 语句。
我不知道为什么我必须在远程数据库上手动创建 SP,然后在比较中为每一个执行排除操作,这样它就不会在远程删除我的新 SP 并在没有 [ 的情况下创建新的德博]。
有人有任何想法或以前见过吗?
我不认为我正在以任何不同的方式创建原始 SP(本地)。只是一个空白的新查询窗口并输入它并按 F5。
提前致谢,
罗