MS SQL Server 2008:如何将所有表导出为 CSV?

And*_*rew 5 export csv sql-server sql-server-2008

我必须从 MS SQL Server 迁移,现在创建一个新的 ORACLE 数据库,其中的数据部分来自我的旧表。

为此,我需要从数十个表中获取数据作为 Unicode CSV 或 TXT 文件,字段以“|”分隔。

不好的是,MS SQL Server 的默认导出大师一次只能导出一个表,并且为每个表配置导出选项需要相当长的时间。我开始手动导出它们,但在第 10 桌时我神经紧张。

您知道如何将所有表从 SQL Server 导出为 csv 或 txt 的方法吗?

Nic*_*ias 3

更强大的解决方案是使用 Oracle 迁移工作台。它曾经是 Oracle 中的一个独立实用程序,但现在包含在Oracle SQL Developer中。如果您使用 CLOB/BLOB 数据类型,那么这就是正确的选择。您还应该阅读有关如何迁移的Oracle文档,因为 SQL Developer 迁移界面不是很直观。

如果您确实想将所有表导出为 csv,您可以使用BCPSSIS。有一篇关于simple-talk的非常好的文章,介绍了如何使用一些 t-sql 并为数据库中的所有表生成 bcp 导出命令。您还可以创建简单的 SSIS 包,通过使用平面文件目标任务将所有表导出到 csv。

这是一些快速而肮脏的东西,可以为您生成 BCP 命令。在 SSMS 中运行它,在命令提示符处运行输出。

            USE AdventureWorks
SELECT 'bcp ' +
            QUOTENAME(DB_NAME())
            + '.'
            +QUOTENAME(SCHEMA_NAME(schema_id))
            + '.'
            +QUOTENAME(name)
            + ' '+'out'+' '
            + name + '.csv -w -t"|" -E -S '
            + @@servername
            + ' -T'
    FROM sys.objects
    WHERE TYPE='u'
        AND is_ms_shipped=0
Run Code Online (Sandbox Code Playgroud)