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

2022-02-25 00:00:00 export sql-server
我有数百个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文章。

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

相关文章