Heyo人,
只是在谷歌和这个网站上看了一下,而且信息很少。
给定一个"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#代码。
这样做的最佳方法是什么?
干杯
答案 0 :(得分:0)
BCP是通过xp_cmdshell在服务器上执行的命令行应用程序;所以bcp写入服务器上的stdout,捕获该输出在这里讨论Get Results from XP_CMDSHELL;这可能会给你你想要的东西。
答案 1 :(得分:0)
我理解您想要运行此bcp.exe
命令并监视其进度的问题。使用Process.Start
和redirect console output to your application运行它。然后,你可以解析它。
如果使用xp_cmdshell
运行它,InfoMessage
事件将收到消息(或者它们可能会以行的形式输出,现在可以确定了。)