我在一个运行sql命令的Windows服务上运行C#进程。这反过来执行一个sproc来填充csv文件。目前,如果这个sproc错误它将错误输出到csv文件,但我需要能够从我的C#代码中访问此错误并相应地处理它。
public static void RunAndWaitForProgram(string executablePath, string arguments)
{
var startInfo = new ProcessStartInfo(executablePath, arguments);
var processToRun = new Process
{
StartInfo = startInfo
};
processToRun.Start();
processToRun.WaitForExit();
}
(其中executablePath是sqlcmd的路径,参数是我希望运行的命令)
我对sqlcmd完全陌生,由于传统的限制,这个实现是必需的。
我已经研究过使用sqlcmd操作-r(见下文)无济于事,我的最后一招是使用正则表达式扫描csv以在每次sproc运行时发现任何错误。无论如何我可以避免这个吗?
"C:\Program Files\Microsoft SQL Server\100\Tools\Binn\sqlcmd.exe" -S database\content -Q "EXEC sproc @variable = '1'" -o "C:\folderpath\data.csv" -f 65001 -W -X -r1 -s"±" -v Variable="4"