sql-server - 一次将所有 SQL Server 表导出到 txt 或 csv

标签 sql-server export

我有数百个 SQL Server 表要导出到带有 " 文本限定符和 | 分隔符的 txt 或 csv。导入/导出向导一次只允许一个表。

是否有更好的方法/工具/脚本可以一次解决所有问题?

谢谢

最佳答案

您可以使用以下方法对 BCP 做一些事情:

SELECT 'bcp [' + TABLE_SCHEMA + '].[' + TABLE_NAME + '] out "' + TABLE_SCHEMA + '.' + TABLE_NAME + '.txt" -T -c -t"|" -d {DATABASE NAME} -S {SERVER NAME} -T'
FROM INFORMATION_SCHEMA.TABLES

这将为您运行它的数据库中的每个表输出 BCP 语句。然后您可以将它们复制并粘贴到命令窗口中。

在上面,您希望将 {DATABASE NAME} 和 {SERVER NAME} 替换为您的环境的详细信息。 “-T”使用受信任的连接(即您),因此如果您需要使用特定的用户名和密码执行某些操作,则需要相应地进行调整。看看 BCP util写了更多的细节。

SELECT 可能需要根据数据库中对象的名称进行更多调整,但希望这能让您了解从哪里/如何开始。

关于sql-server - 一次将所有 SQL Server 表导出到 txt 或 csv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35660616/

相关文章:

variables - 将批处理变量导出到文本文件

java - DisplayTag 导出和链接

php - 如何使用 codeigniter 从表中导出某些行?

sql-server - 不允许执行存储过程

c# - 如何修复 "' ServerVersion' 引发了类型为 'System.InvalidOperationException' 的异常?

mysql - 为什么这个查询只返回 1 行?

javascript - 从客户端 javascript 连接到 SQL

export - 我可以通过 Datadog REST API 导出 Datadog 仪表板吗?

mysql - 将 mySQL 数据库行导出为文本文件?

sql - 如何在多列中应用相同的 COALESCE 参数