Microsoft 将 Microsoft SQL Server 2008 修复程序作为一个可下载的文件分发。 由于修补程序是累积的,因此每个新版本都包含之前 SQL Server 2008 修补程序版本中包含的所有修补程序和安全修补程序。
症状
在 Business Intelligence Development Studio (BIDS) 中创建或编辑 Microsoft SQL Server 2008 Integration Services (SSIS) 包。 你在数据流任务中编辑 OLE DB 源。 单击 “列 ”选项卡时,会收到以下错误消息:
注意
标题: Microsoft Visual Studio
数据流 任务 [OLE DB 源 [1]] 出错:SSIS 错误代码 DTS_E_OLEDBERROR。 发生 OLE DB 错误。 错误代码:0x80040E21。
其他信息:
HRESULT 异常:0xC0202009 (Microsoft.SqlServer.DTSPipelineWrap)
注意 DTS_E_OLEDBERROR 错误代码有许多原因。 本文仅介绍一个具有特定原因的罕见问题。 要确保遇到此问题,请参阅“更多信息”部分以获取故障排除方法。
注意:SQL Server 2005 中不会出现此问题。
原因
在 SQL Server 2008 SSIS 中,特定检查可确定 OLE DB 提供程序使用的标识符是否区分大小写。 此检查允许 SSIS 在 SSIS 列出对象名称、表名和列名时遵循 OLE DB 提供程序配置定义的大小写区别。 此检查通过实现名为 DBPROP_IDENTIFIERCASE 的 OLE DB 属性来执行。 但是,并非所有 OLE DB 提供程序都支持和实现此属性。 如果未实现该属性,则 BIDS 中可能会出现错误。
解决方法
累积更新信息
SQL Server 2008 的发行版本
重要说明 如果您的计算机运行的是 SQL Server 2008 发行版,则必须安装此累积更新程序包。
此问题的修补程序已在累积更新 5 中首次发布。 有关如何获取 SQL Server 2008 的此累积更新程序包的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
969531 累积更新包 5 for SQL Server 2008注意 由于版本是累积的,因此每个新的修补程序版本都包含之前 SQL Server 2008 修补程序版本中包含的所有修补程序和所有安全修补程序。 建议应用包含此修补程序的最新修补程序版本。 有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
956909 在 SQL Server 2008 发布之后发布的 SQL Server 2008 内部版本
SQL Server 2008 Service Pack 1
重要说明 如果计算机运行的是 SQL Server 2008 Service Pack 1,则必须安装此累积更新程序包。
此问题的修补程序稍后也在 SQL Server 2008 Service Pack 1 的累积更新 3 中发布。 有关此累积更新包的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
971491 SQL Server 2008 Service Pack 1 累积更新包 3 注意 由于版本是累积的,因此每个新的修复版本都包含之前 SQL Server 2008 修复版本中包含的所有修补程序和所有安全修补程序。 Microsoft 建议考虑应用包含此修补程序的最新修补程序版本。 有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
970365 在 SQL Server 2008 Service Pack 1 发布之后发布的 SQL Server 2008 内部版本
Microsoft SQL Server 2008 修补程序是为特定的 SQL Server Service Pack 创建的。 必须将 SQL Server 2008 Service Pack 1 修补程序应用于 SQL Server 2008 Service Pack 1 的安装。 默认情况下,SQL Server Service Pack 中提供的任何修补程序都包含在下一个 SQL Server Service Pack 中。
此修补程序更改了 SSIS 中 OLE DB 源代码的行为,以请求 DBPROP_IDENTIFIERCASE 属性。 应用此修补程序后,SSIS 将忽略 DBPROP_IDENTIFIERCASE 属性的失败。 相反,SSIS 使用默认值作为标识符。 应用此修补程序后,如果 OLE DB 提供程序未实现该属性,则标识符默认区分大小写。
状态
Microsoft 已确认在 "适用于" 部分中所列的 Microsoft 产品中存在问题。
详细信息
疑难解答
要确保遇到此问题,请按照下列步骤操作:
- 下载并安装 OLE DB 行集查看器示例工具。 有关更多信息,请访问下面的 Microsoft Developer Network (MSDN) 网站:
https://msdn.microsoft.com/library/ms714336(vs.85).aspx - 启动行集查看器。
- 在 “文件 ”菜单上,单击 “完全连接”。
- 选择提供程序、源、登录名和其他连接字符串属性。 然后单击“ 确定”。
- 成功完成连接后,在 “数据源 ”菜单上,指向“ IDBPProperties”,然后单击“ GetProperties”。
- 在 PropSet 列表中,选择 DBPROPSET_DATASOURCEINFO。
如果 DBPROP_IDENTIFIERCASE 属性未列为可用属性,或者 DBPROP_IDENTIFIERCASE 属性旁边具有绿色问号,则提供商不支持此属性。 在这种情况下,您将遇到“症状”部分描述的问题。
重现问题的步骤
- 在 SQL Server 2008 BIDS 中,创建新的 SSIS 包。
- 将数据流任务添加到包。
- 在数据流任务中添加 OLE DB 源组件。
- 将连接管理器配置为使用不支持 DBPROP_IDENTIFIERCASE 属性的 OLE DB 提供程序。
- 选择表、视图或 SQL 命令,然后提供所需的对象名称或 SQL 命令。
- 在左窗格中,单击“ 列 ”选项卡。
您会收到 “症状” 部分所述的错误消息。
参考资料
有关 DBPROP_IDENTIFIERCASE 属性的详细信息,请访问下面的 Microsoft Developer Network (MSDN) 网站:
https://msdn.microsoft.com/library/ms713637(vs.85).aspx 有关用于查询属性值的 IDBProperties::GetProperties 方法的详细信息,请访问以下 Microsoft 网站:
https://msdn.microsoft.com/library/ms714344(vs.85).aspx有关 SQL Server 增量服务模型的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
935897 可从 SQL Server 团队获取增量服务模型以提供可以解决所报告问题的修补程序
有关 SQL Server 更新的命名架构的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
822499 Microsoft SQL Server 软件更新包的新命名模式有关软件更新术语的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
824684 用于描述Microsoft软件更新的标准术语说明