0

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

我在知识库文章中找到的一种解决方案包括以下步骤:

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

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

执行导出时出现错误(包含报告的文本文件) 。

SSIS 错误
(来源:googlepages.com

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

编辑 1

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

4

1 回答 1

1

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

按照以下步骤操作,您应该可以立即启动并运行新数据库。

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

现在您在新数据库中拥有了数据模式,您需要在SQL 数据比较中重复该过程您应该会发现这非常简单,因为该过程和屏幕与上述步骤几乎相同。

希望这可以帮助。

于 2009-08-03T06:51:42.407 回答