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

将存储过程从一个数据库复制到另一个数据库

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

    我正在尝试将包含大量数据的数据库从SQLServer2005复制到SQLServer2008。我尝试使用复制数据库向导,但无法使用该向导,因为它们是两个不同的服务器2005和2008。所以我使用导入数据向导从SQLServer2008复制了所有表。

    我有大约1120个存储过程需要复制,所以在SQLServer2005上,我使用了生成脚本向导并创建了可以在SQLServer2008上运行的脚本(用于SP)。我在SQLServer2008上运行了这个脚本,但是只创建了1082个过程,其中大多数都是因为依赖性问题而没有创建的。现在我不确定是否有1120个SP没有创建。

    你能就如何解决这种情况提出什么建议吗?

    4 回复  |  直到 10 年前
        1
  •  3
  •   mattmc3    15 年前

        2
  •  2
  •   marc_s MisterSmith    15 年前

    为了找出哪些存储过程丢失并且需要重新创建,您应该使用SQL diff工具,例如:

    这些确实需要花费一点钱来获得许可证,但是它们非常值得购买,并且可以为您节省无数的工作时间来找出需要做什么。

    这两个工具都可以将两个数据库(甚至是不同的版本)相互比较,它们可以创建更新脚本使它们具有相同的对象,或者您甚至可以直接在这些工具中执行同步(如果您希望这样做)。

        3
  •  0
  •   Patrik    15 年前

    什么样的依赖性问题?

    可能是登录之类的?

        4
  •  0
  •   Simon Chadwick    15 年前

    仅仅分离SQL2005DB,将DB的.mdf和.ldf文件复制到SQL2008Data文件夹,然后附加DB不是更简单吗?