【问题标题】:Create a Duplicate Database - Different Collation创建重复数据库 - 不同的排序规则
【发布时间】:2010-11-16 07:01:31
【问题描述】:

我的主要问题是如何将具有英语排序规则的整个数据库复制到具有希腊排序规则的数据库中?源数据库包含所有表和相关数据。我有一个干净的希腊排序数据库。我想将所有内容从源复制到目标。

我在一篇知识库文章中找到了一个solution,包括以下步骤:

  • 为源数据库中的所有对象(不包括索引、触发器、主键、外键、默认设置和约束)生成脚本。此处,Script collation 设置设置为 False,因此创建的脚本没有collate 关键字。
  • 在目标数据库上运行步骤 1 中的脚本以使用目标数据库排序规则创建对象。
  • 使用 DTS 从源数据库传输数据。这就是我现在卡住的地方。

我使用 SQL Server 2005 的 Export Data... 向导将数据从源数据库导出到目标数据库。我的数据库中有大约 1500 个表,所以我在向导步骤中勾选了Optimize of many tables 复选框。除此之外,所有的设置都是默认的。

我在执行导出时收到了error (text-file containing the report)。


(来源:googlepages.com)

为了继续前进,要么我需要解决这个错误,要么需要一种新的方法来使用不同的排序规则从源数据库复制到目标数据库。

编辑 1

我忘了提到我已经尝试过使用 SQL 比较。很长时间以来,我一直在使用该工具。但在这种情况下它不会有一点帮助。我在源数据库中有带有Latin1_General_CS_AS 排序规则的表,但我不想使用该排序规则创建表。我知道Ignore Collation 有一个选项。但是,列名还有另一个问题——一些列名很奇怪,SQL Compare 在格式化列名时引入了额外的[ 或] 字符,这会破坏整个同步脚本!

【问题讨论】:

    标签: sql-server-2005 ssis collation


    【解决方案1】:

    过去要更改为数据库的排序规则,我使用过Red Gate SQL Compare。他们让您下载我认为功能齐全的软件试用版。

    按照下面的这些步骤,您应该可以立即启动并运行您的新数据库。

    1. 加载SQL Compare
    2. 在左侧输入旧数据库服务器、用户名、密码和数据库名称
    3. 在右侧输入新建数据库服务器、用户名、密码和数据库名称
    4. 点击“立即比较”
    5. 在比较窗口中检查您想要移至新数据库的所有内容
    6. 单击“同步向导...”,这将引导您完成 3 或 4 个步骤,确保使用正确的方法迁移到新数据库以及您可能遗漏的任何依赖项。
    7. 在第 4 个屏幕上,您将看到一个同步按钮。如果您对所有选择感到满意,请单击它,这会将数据库架构移至新数据库。

    现在您在新数据库中拥有了数据架构,您需要在SQL Data Compare 中重复该过程。您应该会发现这很简单,因为过程和屏幕与上述步骤几乎相同。

    希望这会有所帮助。

    【讨论】:

    • :) 不要被冒犯,但如果它本来就这么简单,我一开始就不会发布这个问题。无论如何,非常感谢您的回复和编写步骤。 +1!
    猜你喜欢
    • 2015-12-13
    • 1970-01-01
    • 2016-11-02
    • 2012-12-03
    • 2019-03-07
    • 1970-01-01
    • 2015-11-20
    • 1970-01-01
    • 2012-05-04
    相关资源
    最近更新 更多