Microsoft 为一个可下载文件分发 Microsoft SQL Server 2008年的修补程序。修补程序是累积性的因为每个新版本包含的所有修补程序,包含上一个 SQL Server 2008 的所有安全修补程序的修补都程序版本。

症状

在计算机上运行 Microsoft SQL Server 2008年,遇到一个或多个下列问题时使用 SQL 本机客户端提供程序 (Sqlncli.dll) 创建链接的服务器。

注意:这些问题也出现在 Microsoft SQL Server 2005年服务包 3 (SP3)。但是,这篇文章中的修复程序不适用于 SQL Server 2005 SP3。

问题 1

请考虑以下情形:

  • 在 SQL Server 管理 Studio 中,您将打开新建链接服务器窗口并创建链接的服务器使用以下设置之一︰

    • SQL Server服务器类型的 SQL 本机客户端提供程序

    • 其他数据源服务器类型的 SQL 本机客户端 (不 SQL 本机客户端 10) 提供程序

    • Microsoft OLE DB 提供程序对于其他数据源服务器类型的 SQL Server

  • 展开以查看链接的服务器的 SQL Server 管理 Studio 中链接的服务器目录。

在这种情况下,SQL Server 服务意外关闭,或在 SQL Server 错误日志文件夹中不断生成一个小型转储文件。此问题将继续直到停止 SQL Server 服务。此外,SQL Server 管理 Studio 报告以下错误︰

标题︰ Microsoft SQL Server 管理 Studio
------------------------------
无法检索此请求的数据。(Microsoft.SqlServer.Management.Sdk.Sfc)

有关帮助,请单击︰ http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&LinkId=20476
------------------------------
附加信息︰
执行事务处理 SQL 语句或批处理时发生异常。(Microsoft.SqlServer.ConnectionInfo)
------------------------------

超时已过期。在操作完成之前已超时或服务器没有响应。(Microsoft SQL Server,错误:-2)



注意:如果您运行的链接的服务器查询 SQL 本机客户端提供程序与服务器类型SQL Server使用时,就不会发生此问题。

问题 2

请考虑以下情形:

  • 通过使用 Microsoft OLE DB 提供程序的 ODBC 驱动程序中创建链接的服务器。

  • 通过 SQL 本机客户端提供程序与服务器类型其他数据源创建 ODBC 数据源。

在这种情况下,链接的服务器未返回任何结果。

解决方案

此问题的修补程序首次发布的累积更新 7 为 SQL Server 2008 Service Pack 1。有关此累积更新包的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:-

979065对于 SQL Server 2008 Service Pack 1 的累积更新包 7
注意:因为版本具有累计性,所以每个新修补程序版本包含上一个 SQL Server 2008 修补程序版本随附的所有修补程序和所有安全修复程序。我们建议您考虑将应用包含此修复程序的最新的修补程序版本。有关详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:-

970365在 SQL Server 2008 Service Pack 1 月发布之后发布的 SQL Server 2008年生成
为特定的 SQL Server Service Pack 创建 Microsoft SQL Server 2008 修补程序。必须将一个 SQL Server 2008 Service Pack 1 的修补程序应用到安装的 SQL Server 2008 Service Pack 1。默认情况下,在下一次 SQL Server service pack 中包含任何 SQL Server service pack 中提供的修补程序。

详细信息

您可以通过运行下面的查询确认 Sqlncli.dll 和 Sqlservr.exe 文件的版本︰

select * from sys.dm_os_loaded_modules where name like '%sqlncli.dll' or name like '%sqlservr.exe'

如果您使用的 Microsoft SQL Server 2008 Service Pack 1 (SP1) 或更高版本的 Microsoft SQL Server 2008年,则查询将返回以下版本信息︰

  • Sqlncli.dll 文件将晚于 9.0:3207.0 具有版本。

  • Sqlservr.exe 文件必须晚于或等于 10.0:2766.0 比 10.0:2531.0,但更早的版本。

如果您使用的 Microsoft SQL Server 2008 RTM 或更高版本的 SQL Server 2008 RTM,则查询将返回以下版本信息︰

  • Sqlncli.dll 文件将具有版本高于版本 9.0:3207.0。

  • Sqlservr.exe 文件必须晚于或等于 10.0:1835.0 比 10.0:1600.0,但更早的版本。

解决方法

要解决这些问题,请执行以下步骤︰

Workaround 1:

1.删除链接发生故障的服务器。

2.创建新的链接的服务器,使用 SQL Server 本机客户端 10.0 (SQLNCLI10) 提供程序。若要执行此操作:
答︰ 右击链接服务器并选择新建链接服务器。
b.选择其他数据源,然后选择供应商的SQL Server 本机客户端 10.0 。

Workaround 2:

  1. 创建一个名为"SQLNCLI",在以下路径中的注册表子项︰

    HKLM\Software\Microsoft\DataAccess

  2. 创建名为"SQLOSPartitioning",在此子项下 REG_DWORD 类型的注册表项。

  3. 此项的值设为 0x0。

状态

Microsoft 已经确认这是“适用于”一节中列出的 Microsoft 产品中的问题。

详细信息

规则软件

规则标题

规则说明

对规则进行评估所依据的产品版本

系统中心顾问

SQL Server缺少更新 KB979779来防止 SQL 本机客户端内存损坏

SQL Server 2005 所对应的 SQL 本机客户端提供程序为此服务器中存在。枚举提供程序并创建链接服务器时,可以在 SQL Server 2008年和 SQL Server 2008 R2 中可能加载这个旧版本的 SQLNCLI.dll。特定版本的 SQL Server 2008年和 SQL Server 2008 R2 会遇到问题,挂起时创建或使用链接的服务器创建与此影响 SQLNCLI.dll。所需的修补程序更新受影响的实例的 SQL Server 2008年和 SQL Server 2008 R2 或避免创建链接的服务器时使用此 SQLNCLI.dll。

SQL Server 2008

SQL Server 2008 R2



参考资料

对于 SQL Server 的增量服务模式的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章︰

935897的增量服务模式是可以从 SQL Server 团队提供报告的问题的修补程序



有关命名 SQL Server 更新架构的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章︰

822499对于 Microsoft SQL Server 软件更新程序包的新命名方案

有关软件更新术语的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

用于描述 Microsoft 软件更新的标准术语的824684说明

Need more help?

Expand your skills
Explore Training
Get new features first
Join Microsoft Insiders

Was this information helpful?

How satisfied are you with the translation quality?
What affected your experience?

Thank you for your feedback!

×