使用重新分发的组件导出 SQL Server 数据

Posted

技术标签:

【中文标题】使用重新分发的组件导出 SQL Server 数据【英文标题】:Exporting SQL Server data with redistributed components 【发布时间】:2009-04-21 21:04:12 【问题描述】:

我正在编写一个应用程序,它试图将数据从 SQL Server 数据库(使用给定的连接字符串)批量导出到本地文件(以任何格式)。

通常情况下,sql server 实用程序 BCP.exe 是理想的,但是,bcp 实用程序可能无法在运行我的应用程序的机器上使用。 另外,bcp 不被视为可再发行应用程序。

那么我的问题是:BCP.exe 是否不可再发行?如果不是,那么对我和我的应用程序可用的最佳可再分发模块是什么。

将考虑任何解决方案。

【问题讨论】:

你在这个应用中使用什么语言? 【参考方案1】:

您关注 BCP 是否有特定原因?您要导出非常大量的批量数据吗? BCP 非常快,但它倾向于“在幕后”工作,因此围绕着一些正常的制衡。 AFAIK 这是一个 SQL 工作站工具(与 SSMS 等一起安装),通常不用于客户端计算机。

听起来您正在开发基于“拉”的导出。另一种选择是将数据从 SQL Server Integration Services 推送到每台目标机器(或发布所需数据并让客户端订阅)。

否则,您可以编写一个基于 .Net(或其他)的应用程序,该应用程序使用 ADO 来提取数据并将其写入文件。您可以使用多种选项 - 您可以提供更多关于您在什么环境中工作的信息?

【讨论】:

【参考方案2】:

不,我需要的是基于拉取的导出。它用于大量数据。 ADO 比 bcp 慢,否则我会考虑。我需要具有 SSIS 或 bcp 速度的批量数据传输功能。

你说得对,bcp 是一个 SQL 工作站工具,从未在客户端机器上使用过,这是我的难题。

Jeremy,C# 应用程序很好。

【讨论】:

【参考方案3】:

如果您使用的是 VB.Net 或 C#,则不需要框架以外的任何可再发行组件。

编辑:我想知道您的应用程序的目标系统是什么,以及您计划使用什么编程语言来生成它。以便我能给予适当的回应。

再次编辑:您可能想尝试一下 SQL OPENROWSET 方法,它可以让您直接插入到任何 OLEDB 提供程序。除此之外,您将为此使用 ADO。

【讨论】:

以上是关于使用重新分发的组件导出 SQL Server 数据的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server 的 mysqldump 等效项

SQL Server 2005导入数据时出错,导入的是TXT文本格式

从 Xcode 导出 IPA 以使用另一个分发证书重新签名

解决SQL Server 阻止了对组件Ad Hoc Distributed Queries访问的方法

解决SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT'OpenRowset/OpenDatasource&#

解决SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT'OpenRowset/OpenDatasource&#