You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Visual Studio 2022中Native OLE DB缺失Keep Identity选项的解决求助

问题描述
  • 更换硬盘后仅安装Visual Studio 2022,此前环境同时装有VS2019和2022
  • 此前创建SSIS包使用SQL Server Native Client 11.0,该提供程序的连接管理器包含「Keep Identity」选项(等效于执行SET IDENTITY_INSERT ON)
  • VS2022中仅能选择「Microsoft OLE DB Provider for SQL Server」,该提供程序无「Keep Identity」相关选项
  • 尝试在数据流任务前通过Execute SQL语句启用IDENTITY_INSERT,但未生效
可行解决办法

1. 安装SQL Server Native Client 11.0

从微软官网搜索「SQL Server 2012 Native Client」下载对应系统位数的安装包,安装后重启VS2022,即可在连接管理器的OLE DB提供程序列表中找到「SQL Server Native Client 11.0」,继续使用原有的「Keep Identity」选项配置。

2. 修正Execute SQL任务的执行逻辑

Execute SQL语句未生效多因连接会话不一致,数据流任务与Execute SQL任务未复用同一会话。解决步骤:

  • 确保Execute SQL任务和数据流任务使用同一个连接管理器
  • 在Execute SQL任务中执行:
    SET IDENTITY_INSERT [目标表名] ON;
    
  • 在Execute SQL任务的属性窗口中,将「RetainSameConnection」设置为True,确保后续数据流任务复用该会话
  • 数据流任务执行完成后,添加Execute SQL任务执行:
    SET IDENTITY_INSERT [目标表名] OFF;
    

3. 配置OLE DB Destination的高级属性

针对「Microsoft OLE DB Provider for SQL Server」,可通过组件高级属性实现身份插入:

  • 打开OLE DB Destination编辑器,切换到「Advanced Editor」
  • 在「Component Properties」选项卡中,修改「OpenRowset」属性为:
    [目标数据库].[目标架构].[目标表] WITH (IDENTITY_INSERT = ON)
    
  • 确认标识列已正确映射,运行包即可生效

4. 改用SQL Server连接管理器

VS2022推荐使用SQL Server连接管理器,该类型支持直接配置身份插入:

  • 创建新的「SQL Server」连接管理器,完成服务器及数据库配置
  • 在数据流任务中使用「SQL Server Destination」组件
  • 打开组件编辑器,在「Options」选项卡勾选「Keep Identity」选项,即可实现身份插入功能

内容的提问来源于stack exchange,提问作者John Osmond

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 01:12:12