Microsoft将Microsoft SQL Server 2008 修补程序分发为一个可下载的文件。 由于修补程序是累积的,因此每个新版本都包含上一个SQL Server 2008 修补程序版本中包含的所有修补程序和所有安全修补程序。
症状
在运行 Microsoft SQL Server 2008 的计算机上,使用 SQL Native Client 提供程序 (Sqlncli.dll) 创建链接服务器时,会遇到以下一个或多个问题。注意 Microsoft SQL Server 2005 Service Pack 3 (SP3) 中也会出现这些问题。 但是,本文中的修补程序不适用于 SQL Server 2005 SP3。
问题 1
请考虑以下情况:
-
在 SQL Server Management Studio 中,打开“新建链接服务器”窗口,并使用以下设置之一创建链接服务器:
-
服务器类型为 SQL Server 的 SQL Native Client 提供程序
-
SQL Native Client (不是 SQL Native Client 10) 提供程序, 服务器类型 为 其他数据源
-
Microsoft用于SQL Server的 OLE DB 提供程序,服务器类型为其他数据源
-
-
展开 SQL Server Management Studio 中的链接服务器目录以查看链接服务器。
在这种情况下,SQL Server服务意外关闭,或者在“SQL Server错误日志”文件夹中重复生成一个微型转储文件。 此问题一直持续到停止SQL Server服务。 此外,SQL Server Management Studio报告以下错误:TITLE: Microsoft SQL Server Management Studio------------------------------Failed 检索此请求的数据。 (Microsoft.SqlServer.Management.Sdk.Sfc) 如需帮助,请单击: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&LinkId=20476------------------------------ADDITIONAL 信息:执行 Transact-SQL 语句或批处理时发生异常。 (Microsoft.SqlServer.ConnectionInfo) ------------------------------Timeout 已过期。 操作完成之前已过的超时期限或服务器未响应。 (Microsoft SQL Server,错误: -2) 注意 如果在使用具有服务器类型作为SQL Server的 SQL Native Client 提供程序时运行链接服务器查询,则不会出现此问题。
问题 2
请考虑以下情况:
-
使用用于 ODBC 驱动程序的 Microsoft OLE DB 提供程序创建链接服务器。
-
使用 SQL Native Client 提供程序创建 ODBC 数据源,服务器 类型 为 “其他”数据源。
在此方案中,链接服务器不返回任何结果。
解决方法
此问题的修补程序首次发布在累积更新 7 for SQL Server 2008 Service Pack 1 中。 有关此累积更新包的详细信息,请单击下面的文章编号以查看Microsoft知识库中的文章: -
979065SQL Server 2008 Service Pack 1 的累积更新包 7 注意由于内部版本是累积的,每个新修补程序版本都包含上一个SQL Server 2008 修补程序版本中包含的所有修补程序和所有安全修补程序。 建议考虑应用包含此修补程序的最新修补程序版本。 有关详细信息,请单击以下文章编号以查看Microsoft知识库中的文章: -
970365SQL Server 2008 Service Pack 1 发布后发布的SQL Server 2008 内部版本Microsoft SQL Server 2008 修补程序是为特定SQL Server Service Pack 1 创建的。 必须将 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:2531.0,但早于 10.0:2766.0。
如果使用 Microsoft SQL Server 2008 RTM 或更高版本的 SQL Server 2008 RTM,则查询将返回以下版本信息:
-
Sqlncli.dll 文件的版本将低于版本 9.0:3207.0。
-
Sqlservr.exe 文件的版本将晚于或等于 10.0:1600.0,但早于 10.0:1835.0。
解决方法
若要解决这些问题,请执行以下步骤:解决方法 1:1。 删除失败的链接服务器。2. 使用 SQL Server Native Client 10.0 (SQLNCLI10) 提供程序创建新的链接服务器。 为此,: a。 右键单击“链接服务器”,然后选择“新建链接服务器”。 B。 选择“其他数据源”,并为“提供程序”选择“SQL Server Native Client 10.0”。解决方法 2:
-
在以下路径中创建名为“SQLNCLI”的注册表子项:
HKLM\Software\Microsoft\DataAccess
-
在此子项下创建名为“SQLOSPartitioning”的REG_DWORD类型注册表项。
-
将此条目的值设置为0x0。
状态
Microsoft 已确认这是在“适用范围”部分中列出的 Microsoft 产品存在的问题。
更多信息
|
规则软件 |
规则标题 |
规则说明 |
评估规则时所针对的产品版本 |
|
System Center 顾问 |
SQL Server缺少更新KB979779,以防止 SQL 本机客户端内存损坏 |
此服务器中存在与 SQL Server 2005 对应的 SQL Native Client 提供程序。 枚举提供程序和创建链接服务器时,可能会在 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的增量服务模型的详细信息,请单击下面的序列号以查看Microsoft知识库中的文章:
935897 SQL Server团队提供了增量服务模型,用于为报告的问题提供修补程序 有关SQL Server更新的命名架构的详细信息,请单击以下序列号以查看Microsoft知识库中的文章:
822499Microsoft SQL Server软件更新包的新命名架构 有关软件更新术语的详细信息,请单击以下序列号以查看Microsoft知识库中的文章:
824684 有关用于描述 Microsoft 软件更新标准术语的说明