Windows11下Access通过ODBC连接SQLServer2016触发ERROR3155求助
Access连接SQL Server触发ODBC错误3155的排查求助
ERROR: 3155, ODBC--insert on a linked table [table name] failed. Microsoft ODBC SQL Server Driver - SQL Server - The target table [table name] of the DML statement cannot have any enabled triggers if the statement contains an OUTPUT clause without INTO clause (
#334).
问题背景
一台使用Microsoft Access连接SQL Server 2016的设备出现异常:办公室多名用户使用同款软件,仅该用户自2022年3月3日起出现上述错误,其他用户无异常。
情况说明
- 仅该Windows 11设备出问题,其他安装同款软件的Windows 10用户(2023年3月3日上午也进行了Windows更新)均正常,涉事设备是办公室内较新的Windows 11机器。
- 涉事表的after update触发器逻辑简单:仅将插入临时表中的int类型标识主键与当前日期时间插入另一表,无OUTPUT子句但有INSERT INTO子句。即使重写触发器使其不使用插入表数据,只要表上存在触发器,该设备就会报错。此触发器已正常使用多年,其他用户无问题。
已尝试操作
- 直接向Access关联表插入数据(绕开Access代码)仍触发相同错误,排除Access代码问题,确定为Access/ODBC/SQL Server插入问题;
- 通过T-SQL直接插入SQL Server表无报错,触发器正常执行;其他用户使用Access前端+ODBC Driver17连接SQLServer2016插入该表无异常;
- 禁用涉事表触发器后,该设备操作另一带触发器的表时仍报相同错误;
- 卸载原ODBC SQL Server Driver18并安装Driver17重启后,问题依旧。
推测与求助
推测可能由2023年3月3日的Windows更新导致,也不排除病毒可能(已用Windows Defender扫描无病毒)。目前未找到相关近期报错信息,恳请有相关经验的人士提供排查思路。
内容的提问来源于stack exchange,提问作者Eric Isaacs
相关产品推荐
相关产品推荐

