我正在寻找一个命令行工具或 SQL 命令来导出/导入表或完整数据库。非常类似于 Oracle 数据库的 imp 和 exp 命令。
有什么建议么?
答案1
答案2
最像 imp 或 exp 的 SQL Server 功能可能是 bcp。我相信 bcp.exe 附带“标准”SQL 工具。SSIS 服务器对象不附带标准工具,如果您没有在 SQL Server 上运行应用程序,您可能会遇到许可问题。
BCP 是一个实用程序,它允许将数据从表导出到文件或从文件导入到表。BCP 已随 SQL Server 一起提供大约 20 年,并且非常原始。它只了解如何将数据从表导入文件或从文件导入表。它不处理创建表或索引。它不处理父子关系。如果您需要导出/导入许多表,则必须一次执行一个。如果您需要在目标上创建对象,最好的办法是使用 SSMS 的自动脚本创建功能来创建将创建表和索引的脚本。然后您可以在目标上运行这些脚本。
BCP 使用标准的“快速加载”接口,这些接口通过 OLEDB 公开。如果程序是用 .Net 编写的,您应该能够使用这些接口来编写自己的传输代码。这将是比花钱更好的解决方案,因为您不必担心客户端计算机上是否有第三方实用程序。
处理此问题的另一种方法是使用链接服务器,但它们往往速度较慢,并且大量传输可能需要大量的日志文件空间。
如果您需要定期执行此操作,您可能需要查看快照复制。这是一个服务器端解决方案,需要进行一些设置和配置。