【问题标题】:Monitor BCP progress监控 BCP 进度
【发布时间】:2014-06-11 09:40:13
【问题描述】:

大家好, 只是在谷歌和这个网站上四处寻找,而且信息很少。 给定一个查询 "SELECT * FROM Table WHERE (various)",我正在输入一个像这样的 BCP 实用程序查询,从 C#(.net 3.5,但可以引发)调用。

xp_cmdshell 'bcp "SELECT * FROM [DB].dbo.[table]  " queryout "\\networkpath\bla\file.csv" -N -S localhost -T -E -m0'

但是,当我在 SQL Management Studio 中运行此查询时,它会不断向我提供“已复制 1000 行”,这很有帮助。消息。我想在我的 C# 应用程序中获取这些消息。

我尝试了几种C#方法,包括SqlDependency、SqlConnection.InfoMessage、BeginExecuteNonQuery()等;因此缺少 C# 代码。

最好的方法是什么?

干杯

【问题讨论】:

  • 也许 SSMS 一次查询 1000 行并以此为基础进行报告。你也可以这样做。

标签: c# sql sql-server sql-server-2008-r2 bcp


【解决方案1】:

BCP 是通过 xp_cmdshell 在服务器上执行的命令行应用程序;因此 bcp 正在写入服务器上的标准输出,捕获该输出在此处讨论 Get Results from XP_CMDSHELL ;这可能会给你你正在寻找的东西。

【讨论】:

    【解决方案2】:

    我理解您想要运行此bcp.exe 命令并监控其进度的问题。使用Process.Startredirect console output to your application 运行它。然后就可以解析了。

    如果您使用xp_cmdshell 运行它,InfoMessage 事件将接收消息(或者它们可能以行的形式输出,现在可以确定了)。

    【讨论】:

      猜你喜欢
      • 2011-11-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多