代码之家  ›  专栏  ›  技术社区  ›  punkouter

有没有更好的方法可以让存储过程在数据库之间保持同步,这也很容易,而且可以在visual studio中完成?

  •  1
  • punkouter  · 技术社区  · 15 年前

    代码是同步的,因为我负责这个方面(当我需要时,它只是对不同的服务器进行xcopy)

    数据库人员负责保持sps同步,现在要求他们在特定的数据库上手动执行一个更改过程。

    在visualstudio中有什么简单的方法可以做到这一点吗?

    我喜欢在vs中有一个db项目,只需按下一个按钮,它就会转到某个配置文件中的每个db服务器,并确保它们都匹配。

    像那样?

    2 回复  |  直到 15 年前
        1
  •  0
  •   David Atkinson    15 年前

    是的,可以通过从visual studio单击一个按钮来保持对象同步。如果您在tools/external tools中添加了一个条目,则可以从vs调用red gate sql compare命令行

    当然,首先需要安装sql compare。

    然后设置以下外部工具(此示例将存储过程从dev数据库复制到测试数据库):

    • 题目: 同步选定的存储过程
    • 命令: C:\程序文件\red gate\sql compare 8\sqlcompare.exe
    • 论据: /s1:。\sql2005/db1:devdb/s2:。\sql2005/db2:testdb /包括:存储过程:[$(curtext)] /同步
    • 检查“使用输出 “所以你可以看到发生了什么” 论。

    这将在“工具”菜单下添加一个项目。也可以将其添加为工具栏中的按钮。

    要使用此选项,请选择要同步的存储过程的文本,然后转到“工具/同步选定的存储过程”。这将同步选定的过程。缺点是上面的示例是一对一同步。如果有多个目标服务器,则必须在批处理文件中包装多个语句,并多次调用sqlcompare.exe命令行。当然,上面的“外部工具”需要调用批处理文件并将参数传递给批处理文件。

    当然,这个解决方案假设您已经将存储过程应用于开发数据库。你就是这样工作的吗?或者您试图从属于您的vs项目的脚本进行同步?

    我有兴趣和你进一步讨论这个问题,看看我们能否帮你解决这个问题。欢迎发邮件到david.atkinson的red-gate.com。

        2
  •  0
  •   No Refunds No Returns    15 年前

    我们使用Redgate的工具套件来完成这项工作。我不在那里工作,但我确实喜欢这些工具。如果您得到vsts或db版本,vs也有一个db比较工具。不知道它是否允许你同步,但会给你一些弹药,以显示你的老板的问题。