已存在列却触发ADODB.Recordset找不到项错误的技术求助
问题:VBScript读取SQL临时表字段提示找不到项
执行的SQL查询
DECLARE @Start DATETIME SET @Start = DateAdd(Hour, -1,GetDate()) IF OBJECT_ID('tempdb..#logTable') IS NOT NULL DROP TABLE #logTable CREATE TABLE #logTable ( LogDate DATETIME, ProccessINfo SYSNAME, [Text] NVARCHAR(MAX) ) INSERT INTO #logTable exec xp_readerrorlog 0, 1, N'longer than 15 seconds to complete', N'', @Start, N'9999-12-31', N'desc' SELECT * FROM tempdb..#logTable
调用查询的VBScript代码
'MSSQLQuery.vbs Option Explicit 'On Error Resume Next Dim objCN, objRS, strConnection, strSQLQuery Set objCN = CreateObject("ADODB.Connection") Set objRS = CreateObject("ADODB.Recordset") strConnection = "Driver={SQL Server};Trusted_Connection=TRUE;Server=WINDMSSQL01.dev;Database=master" strSQLQuery = "DECLARE @Start DATETIME " & _ "SET @Start = DateAdd(Hour, -1,GetDate()) " & _ "IF OBJECT_ID('tempdb..#logTable') IS NOT NULL " & _ "DROP TABLE #logTable " & _ "CREATE TABLE #logTable " & _ "( " & _ "LogDate DATETIME, " & _ "ProccessINfo SYSNAME, " & _ "[Text] NVARCHAR(MAX) " & _ ") " & _ "INSERT INTO #logTable exec xp_readerrorlog 0, 1, N'longer than 15 seconds to complete', N'', @Start, N'9999-12-31', N'desc' " & _ "SELECT * FROM tempdb..#logTable;" objCN.Open strConnection Set objRS = objCN.Execute(strSQLQuery) If Err.Number = 0 Then WScript.Echo "SQL Server Connection OK, SQL Query Output:" & vbCrLf WScript.Echo objRS.Fields("LogDate") Else WScript.Echo "SQL Server Connection Not OK." End If
问题现象
- 上述SQL查询在SSMS中正常返回三列:LogDate、ProccessINfo、Text
- VBScript能成功执行SQL查询,但尝试读取
LogDate字段时,抛出以下错误:
MSSQLQuery.vbs(32, 2) ADODB.Recordset: Item cannot be found in the collection corresponding to the requested name or ordinal.
(注:在SSMS中可直观看到查询结果包含目标列)
内容的提问来源于stack exchange,提问作者edwio
相关产品推荐
相关产品推荐

