在SSIS脚本任务中执行存储过程时出现运行时错误

时间:2017-07-07 16:38:47

标签: sql sql-server vbscript ssis etl

从SSIS脚本任务执行存储过程时出现奇怪错误。它很奇怪,因为它只发生在我需要它运行的存储过程中。如果我指向同一数据库中的另一个存储过程,那么它运行没有错误。我在脚本任务中这样做,所以我可以从过程中捕获PRINT消息到SSIS日志,以便排除故障。

以下是脚本任务中的代码:

 Public Sub Main()
    Dim conn As New SqlConnection("server=MyServer;Integrated Security=SSPI;database=MyDatabase")
    AddHandler conn.InfoMessage, New SqlInfoMessageEventHandler(AddressOf OnInfoMessage)
    conn.Open()
    Dim cmd As New SqlCommand()
    cmd.Connection = conn
    cmd.CommandType = CommandType.StoredProcedure
    cmd.CommandText = "[logtesting]"
    cmd.ExecuteNonQuery()
    conn.Close()
    Dts.TaskResult = ScriptResults.Success
End Sub
Private Sub OnInfoMessage(ByVal sender As Object, ByVal args As System.Data.SqlClient.SqlInfoMessageEventArgs)
    Dim sqlEvent As System.Data.SqlClient.SqlError
    For Each sqlEvent In args.Errors
        Dts.Events.FireInformation(sqlEvent.Number, sqlEvent.Procedure, sqlEvent.Message, "", 0, False)
    Next
End Sub

在VS2010中内置的32位软件包,针对SQL 2012 Server运行。

失败是立竿见影的,如果我发表评论

cmd.ExecuteNonQuery()

然后运行正常。

错误讯息:

  

at System.RuntimeMethodHandle.InvokeMethod(Object target,Object [] arguments,Signature sig,Boolean constructor)       at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj,Object [] parameters,Object [] arguments)       在System.Reflection.RuntimeMethodInfo.Invoke(Object obj,BindingFlags invokeAttr,Binder binder,Object []参数,CultureInfo文化)       at System.RuntimeType.InvokeMember(String name,BindingFlags bindingFlags,Binder binder,Object target,Object [] providedArgs,ParameterModifier [] modifiers,CultureInfo culture,String [] namedParams)       在Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTATaskScriptingEngine.ExecuteScript()

0 个答案:

没有答案