我使用Microsoft.ACE.OLEDB.12.0将Excel文件转换为数据库, 我收到这个错误:
无法启动OLE DB提供程序的事务
“Microsoft.ACE.OLEDB.12.0”用于链接服务器“(null)”。 OLE DB提供程序 返回链接服务器“(null)”的“Microsoft.ACE.OLEDB.12.0” 消息“既不是隔离级别也不是强化它 支持的
当我在服务器上运行探查器时,我看到这些命令运行:
declare @p7 int
set @p7=NULL
exec sp_executesql N'EXEC @RETURN_VALUE = [dbo].[SYSMain_ExcelImport]
@ExcelPath = @p0, @StoredProcedure = @p1, @SheetName = @p2,
@DoneByPersonID = @p3',N'@p0 nvarchar(4000),@p1 nvarchar(4000),@p2 nvarchar(4000),
@p3 int,@RETURN_VALUE int output',
@p0=N'
E:\TolueCRM\TolueCRM\upload \SYSMain_ExcelReadyForImport 57\3.xlsx'
,@p1=N'SYSMain_Excel_SendigRecievingDebitCustomer',
@p2=N'sheet1',@p3=101,@RETURN_VALUE=@p7 output
select @p7
当我直接在Management Studio中运行时,我没有收到任何错误,而且工作正常。
然后探查器显示此命令:
exec sp_reset_connection
然后:
-- network protocol: LPC
set quoted_identifier on
set arithabort off
set numeric_roundabort off
set ansi_warnings on
set ansi_padding on
set ansi_nulls on
set concat_null_yields_null on
set cursor_close_on_commit off
set implicit_transactions off
set language us_english
set dateformat mdy
set datefirst 7
set transaction isolation level serializable
我想设置隔离级别可序列化会导致此错误 和last:错误消息是create:
declare @p8 int
set @p8=1
exec sp_executesql
N'EXEC @RETURN_VALUE = [dbo].[SYSMainSproc_EntitiesAllField_Update]
@ID = @p0, @IDVAlue = @p1, @Entity = @p2, @strset = @p3,
@DoneByPersonID = @p4',N'@p0 nvarchar(4000),@p1 int,@p2 nvarchar(4000)
,@p3 nvarchar(4000),@p4 int,
@RETURN_VALUE int output',
@p0=N'SYSMain_ExcelReadyForImportID',
@p1=57,@p2=N'SYSMain_ExcelReadyForImport',
@p3=N' Description=
N''Cannot start a transaction for OLE DB provider
"Microsoft.ACE.OLEDB.12.0" for linked server "(null)".
OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "(null)"
returned message
"Neither the isolation level nor a strengthening of it is supported.".''',
@p4=101,@RETURN_VALUE=@p8 output
select @p8
我猜提供者无法在可序列化的隔离级别工作,但我不知道哪个部分将隔离级别设置为可序列化。
让我添加其他内容:此错误有时不会发生!当我通过应用程序转换工作正确!
提前感谢您的帮助