创建重复数据库 - 不同的排序规则

时间:2009-08-03 06:25:03

标签: sql-server-2005 ssis collation

我的主要问题是如何将具有英语校对的整个数据库复制到具有希腊语校对的数据库?源数据库具有所有表和相关数据。我有一个干净的希腊整理数据库。我想将 所有内容 从源文件复制到目标。

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

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

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

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

SSIS Error
(来源:googlepages.com

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

编辑1

我忘了提到我已经尝试过使用SQL Compare。很久以来我一直在使用这个工具。但在这种情况下,它无济于事。我在源数据库中有Latin1_General_CS_AS排序规则的表,但我不想创建具有该排序规则的表。我知道Ignore Collation有一个选项。但是,列名称存在另一个问题 - 一些列名称很奇怪,并且SQL Compare在格式化列名时引入了额外的[]字符,从而打破了WHOLE同步脚本!

1 个答案:

答案 0 :(得分:1)

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

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

  1. 加载SQL Compare
  2. 左侧
  3. 上输入数据库服务器,用户名,密码和数据库名称
  4. 右侧
  5. 上输入数据库服务器,用户名,密码和数据库名称
  6. 点击“立即比较”
  7. 在比较窗口中,选中要移动到新数据库的所有内容
  8. 点击“同步向导...”,这将指导您完成3个或4个步骤,确保迁移到新数据库时使用正确的方法以及您可能错过的任何相关性。
  9. 在第4个屏幕上,您将看到“同步”按钮。如果您对所有选择感到满意,请单击它,这会将数据库架构移动到新数据库。
  10. 现在您需要在新数据库中完成数据模式,您需要在SQL Data Compare中重复该过程。您应该非常直接地发现这一点,因为过程和屏幕几乎与上面的步骤相同。

    希望这有帮助。