该组织的数据分布在多个地方,包括 Win2k Server 上的 MySQL 5 数据库和 SQLServer 2000(开发人员版)。对于 MySQL 中的数据,我使用了 PHPMyAdmin、mysqldump 等来获取数据并进行转换。我还编写了一些简单的 Ruby Rails 代码来处理 MySQL 数据,并使用 SQLYog(专业版)将数据从 SQLServer 2000 传输到 MySQL 5。现在我需要从 SQL Server 2000 数据库中获取一些数据,而且我希望在不编写代码(或更改旧版 ColdFusion 应用程序的代码库)的情况下完成此操作。这似乎并不不合理...
SQL Server 的查询分析器可能能够以某种方式保存查询输出。我非常确定我也可以使用 SQL Server 控制台,将其导入控制台中的文件,然后对其进行转换。有什么更好的工具吗?是否有类似适用于 SQLServer 2000 的 PHPMyAdmin 的工具,或者是否有其他快速方法,只需很少或根本不需要代码即可从 SQLServer 2000 获取 CSV?
谢谢,
阿德里克
答案1
在 SQL Server 2000 中,与 mysqldump 最接近的工具是BCP 实用程序 您可以将表从数据库导出到 csv 中,而无需编写任何代码,尽管它至少需要一些批处理文件。
例如。
BCP northwind.dbo.customers out c:\customers.txt -c -t, -T –S<servername>
如果要通过管道输出查询,则调用查询分析器的命令行版本数据库。您可以从命令提示符运行它并执行管道输出等操作,或者指定输出文件。
我认为将 SQL Server 数据导入 MySQL 最省事的方式是使用链接服务器。我回答了一个类似问题关于将 mysql 数据导入 sql server,但可以应用相同的方法。当然,这需要编写更多的代码。
答案2
SQL Server 2000 附带数据转换服务(DTS)1允许将数据从一个数据库移动到另一个数据库,2可能包括转换。
这是为了移动批量数据而设计的,查询分析器则不是。
1在较新版本中已用 SQL Server Intergration Services (SSIS) 替换。
2或者任何带有 ADO 驱动程序的东西。我过去曾用它将数据从 Excel 文件移动到 Excel 文件。
答案3
如前所述,有 DTS 选项,或者我相信更简单的 GUI 版本,通过右键单击并导出。您可以对 excel、CSV 或其他文件格式执行此操作,但我相信您需要手动重新创建表结构。我之前用于迁移 SQL Server 数据库(以及结构)的一个工具是 Apex 软件的 SQL diff,至于迁移到另一个平台,我不知道它到底是如何工作的,它可能足够聪明,可以“做你想做的事”