Sql server 如何使用ADO从查询中检索所有错误和消息

Sql server 如何使用ADO从查询中检索所有错误和消息,sql-server,vbscript,ado,Sql Server,Vbscript,Ado,当SQL批处理从例如print语句返回多条消息时,我只能使用ADO连接的Errors集合检索第一条消息。我如何获得其余的消息 如果我运行此脚本: Option Explicit Dim conn Set conn = CreateObject("ADODB.Connection") conn.Provider = "SQLOLEDB" conn.ConnectionString = "Data Source=(local);Integrated Security=SSPI;Initial Cat

当SQL批处理从例如print语句返回多条消息时,我只能使用ADO连接的Errors集合检索第一条消息。我如何获得其余的消息

如果我运行此脚本:

Option Explicit
Dim conn
Set conn = CreateObject("ADODB.Connection")
conn.Provider = "SQLOLEDB"
conn.ConnectionString = "Data Source=(local);Integrated Security=SSPI;Initial Catalog=Master"
conn.Open

conn.Execute("print 'Foo'" & vbCrLf & "print 'Bar'" & vbCrLf & "raiserror ('xyz', 10, 127)")

Dim error
For Each error in conn.Errors
    MsgBox error.Description
Next
然后我只回“Foo”,而不回“Bar”或“xyz”


有没有办法得到剩下的消息?

我自己想出来的

这项工作:

Option Explicit
Dim conn
Set conn = CreateObject("ADODB.Connection")
conn.Provider = "SQLOLEDB"
conn.ConnectionString = "Data Source=(local);Integrated Security=SSPI;Initial Catalog=Master"
conn.Open

Dim rs
Set rs = conn.Execute("print 'Foo'" & vbCrLf & "print 'Bar'" & vbCrLf & "raiserror ('xyz', 10, 127)")

Dim error
While not (rs is nothing)
    For Each error in conn.Errors
        MsgBox error.Description
    Next
    Set rs = rs.NextRecordSet
Wend

我知道我正在恢复一条长长的死线,但这对我很有帮助。我不得不更新一个写得很糟糕的遗留VbScript,该脚本将数据馈送到SQL数据库,尽管我捕获了
Err
对象,但我从未看到任何错误。看起来我还必须将这种错误检查添加到我的SQL命令中。谢谢