集成平台sqlserver 表包含自动增长列,插入报错。
金蝶云社区-mellon
mellon
0人赞赏了该文章 638次浏览 未经作者许可,禁止转载编辑于2017年08月29日 14:59:25

环境:k3cloud餐饮6.1 ,sqlserver 数据中心。
角色:管理员。
模块:系统管理--集成平台--数据集成--业务单据映射

BUG描述
1、新增 业务单据映射,选择K3业务单据 为 POS营收账单,配置完成运行显示错误,服务器日志报错:
"System.Data.SqlClient.SqlException (0x80131904): 当 IDENTITY_INSERT 设置为 OFF 时,不能为表 'T_DIN_POSBusiFood' 中的标识列插入显式值。"
查看数据库,T_DIN_POSBusiFood的主键FEntryID是自动增长的。
2、同时,餐饮行业库存储过程Sp_Upposgeneratebill 在 T_DIN_POSBusiFood表插入数据时 ,利用了 这个主键自动增长的特点。插入语句中没包含FEntryID字段。

希望:
修改集成平台,sqlserver部分的写入逻辑:如果 目标表主键包含自动增长属性的字段

1、插入语句集不要包含主键字段。
2、或者在插入语句前面加:'SET IDENTITY_INSERT 表名 ON',后面加上 'SET IDENTITY_INSERT 表名 OFF'。