c# - SQL 服务器 : BCP vs SQLCMD - what is more efficient?

标签 c# sql-server-2005 bcp sqlcmd

我正在用 C# 编写一个程序,用于从一个数据库导出 SQL Server 数据并将其导入另一个数据库。由于这两个服务器没有连接,我需要选择一种方法,例如 bcp。

  1. 这两者之间有什么区别?一个比另一个更有效率吗?在什么情况下?
  2. 各自的已知限制/兼容性问题是什么?
  3. 还有哪些其他方法可以将数据从 SQL Server 导出到文件并从中导入?
  4. 我能否在通过命令行开关创建这些文件的同时启用压缩,而不是事后压缩它们?
  5. 请包括您认为在做出此决定时重要的任何其他方面。

提前致谢。

最佳答案

不涉及 BCP,但我确实写了一个 blog post比较两种将数据批量加载到 SQL Server 的方法 - 比较 SqlBulkCopy针对通过 SqlDataAdapter 的批量插入。

SqlBulkCopy 值得一试 - 您使用的过程类型是查询数据库 1 并检索 SqlDataReader。将该 SqlDataReader 传递给 SqlBulkCopy 以将该数据保存到数据库 2。

关于c# - SQL 服务器 : BCP vs SQLCMD - what is more efficient?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3994997/

相关文章:

c# - Entity 6 + PostgreSQL - 糟糕的性能

sql-server-2005 - 如何将亚美尼亚语字符串插入 SQL Server 数据库

sql-server-2005 - SSIS 2005 - 忽略行插入失败

Powershell - 输出到屏幕和日志文件

azure - 大容量复制程序 (bcp) 实用程序 - 导入 CSV 时出错 - 证书链由不受信任的机构颁发

c# - Linq2SQL 处理具有唯一约束的表上的插入/删除

c# - 如何发送没有扩展名的文件附件的电子邮件?

C# Windows 10现代系统托盘菜单

sql - 在批量插入期间删除/重建索引

sql - BCP 不复制所有行