0

以下代码存储在 SQL Server 2008 上的一个过程中,并在 MS Access 中使用 ADODB 执行;尝试在 Access 中执行时收到以下错误...

运行时错误 -2147217913(80040e07)
[Microsoft][ODBC SQL Server Driver][SQL Server]
将 nvarchar 值“fldNumericData”转换为数据类型 int 时转换失败。

fldNumeric仅包含值 0、1、2、3、4 和 5,但以下语句失败...

SELECT  Order#, MachineID, Addr1, 
        Addr2, City, [State], Country, ZIP, Contact, Phone, Fax, email,
        Product, CAST([fldNumeric] AS INT) AS [fldNumeric], 
        CAST([AutoSub] AS INT) AS [AutoSub], Mode, [FileName]
INTO #sRst1
FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
                'C:\Documents and Settings\database.mdb';
                'admin';'',tempTable) LEFT JOIN FN_qryOne() ON fldMatch =                         
                 FN_qryOne.fldMatch AND fldCutOff = FN_qryOne.fldCutOff
4

1 回答 1

0

丑陋的你必须加入一个功能,但试试这个:

SELECT  Order#, MachineID, Addr1, 
    Addr2, City, [State], Country, ZIP, Contact, Phone, Fax, email,
    Product, CAST([fldNumeric] AS INT) AS [fldNumeric], 
    CAST([AutoSub] AS INT) AS [AutoSub], Mode, [FileName]

INTO  #sRst1
FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
            'C:\Documents and Settings\database.mdb';
            'admin';'',tempTable) AS FM LEFT JOIN FN_qryOne() AS F ON FM.fldMatch =                         
             F.fldMatch AND FM.fldCutOff = F.fldCutOff
于 2014-01-14T21:28:58.043 回答