我试图从C#Windows应用程序对数据库执行脚本(.sql文件)。 SQL文件包含'GO'语句;这意味着我正在使用对象SMO。从C#执行SQL脚本并记录错误
我想继续错误也日志的任何错误可能脚本的数据库上执行过程中发生的。有没有办法做到这一点?
这是我使用的代码:
using (SqlConnection sqlConnection = new SqlConnection(connectionString))
{
ServerConnection svrConnection = new ServerConnection(sqlConnection);
Server server = new Server(svrConnection);
string script = File.ReadAllText("upgradeDatabase.sql");
try
{
server.ConnectionContext.ExecuteNonQuery(script, ExecutionTypes.ContinueOnError);
}
catch (Exception ex)
{
//handling and logging for the errors are done here
}
}
任何帮助表示赞赏!
在文本中与** GO **分离可能会破坏脚本,想象一下你必须选择CATE ** GO ** RY FROM WHATEVER –
您是否注意到我使用将GO固定到行首的正则表达式模式? http://msdn.microsoft.com/en-US/library/az24scfc(v=vs.90) – Steve
谢谢史蒂夫你的解决方法。我正在执行每条单一语句,并在发生时捕获任何错误。 – naregkar