Microsoft 发布 Microsoft SQL Server 2005、Microsoft SQL Server 2008 和 Microsoft SQL Server 2008 R2 修复为一个可下载的文件。由于修补程序是累积的,因此每个新版本都包含以前 SQL Server 2005、Microsoft SQL Server 2008 和 SQL Server 2008 R2 修复版本附带的所有修补程序和所有安全修补程序。本文中介绍的修复程序适用于以下版本的 SQL Server:
-
Microsoft SQL Server 2005 Service Pack 3 (SP3)
-
Microsoft SQL Server 2005 Service Pack 4 (SP4)
-
Microsoft SQL Server 2008 Service Pack 1 (SP1)
-
Microsoft SQL Server 2008 Service Pack 2 (SP2)
症状
请考虑以下情况:
-
在运行 Microsoft SQL Server 2005、Microsoft SQL Server 2008 或 Microsoft SQL Server 2008 R2 的计算机上创建链接服务器。 链接服务器指向远程服务器上的 OLE DB 数据源。
-
为链接服务器上的表创建同义词。
-
创建使用同义词的用户定义函数,或者创建使用同义词的视图。 然后,针对用户定义的函数或视图运行查询。注意 运行查询时,将缓存执行计划。
-
在远程服务器上执行操作以更新链接服务器上的表的架构版本。 例如,在远程服务器上重建表的索引,以更新链接服务器上的表的架构版本。
-
对用户定义的函数或视图运行其他查询。
在这种情况下,你会收到类似于以下内容的错误消息:
服务器:消息7359、级别级别的数字、状态状态编号、行号链接服务器 "链接服务器名称" 的 OLE DB 访问接口 "提供程序名称" 报告了编译时架构版本("编译时")和运行时("运行时")与表 "链接表名称" 之间的更改。
注意 提供商名称 是一个占位符,表示 OLE DB 提供程序的名称。 链接表名称 是一个占位符,表示链接服务器上的表的名称。
原因
出现此问题的原因是未正确清除现有的执行计划。 这将导致架构版本发生更改,因为在运行第二个查询时,将重新编译用户定义的函数或视图。 因此,将发生错误。
解决方案
累积更新信息
SQL Server 2008 R2 Service Pack 1
此问题的修补程序首次在 SQL Server 2008 R2 Service Pack 1 的累积更新1中发布。有关如何获取此累积更新包的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2544793 SQL Server 2008 R2 Service Pack 1 的累积更新包1注意 由于这些版本是累积的,因此每个新的修复版本都包含了以前的 SQL Server 2008 R2 修补程序版本附带的所有修补程序和所有安全修补程序。 我们建议你考虑应用包含此修补程序的最新修复版本。 有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2567616 在发布 SQL Server 2008 R2 Service Pack 1 之后发布的 SQL Server 2008 R2 版本
SQL Server 2008 R2
此问题的修补程序首次在累积更新7中发布。有关如何为 SQL Server 2008 R2 获取此累积更新包的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2507770 SQL Server 2008 R2 的累积更新包7 注意 由于这些版本是累积的,因此每个新的修复版本都包含了以前的 SQL Server 2008 R2 修补程序版本附带的所有修补程序和所有安全修补程序。 我们建议你考虑应用包含此修补程序的最新修复版本。 有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
981356 发布 SQL Server 2008 R2 后发布的 SQL Server 2008 R2 版本
对于 SQL Server 2005 SP3
此问题的修补程序首次在累积更新15中发布。有关如何为 SQL Server 2005 SP3 获取累积更新包的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2507766 SQL Server 2005 SP3 的累积更新包15 注意 由于这些版本是累积的,因此每个新的修复版本都包含以前的 SQL Server 2005 SP3 修补程序版本中附带的所有修补程序和所有安全修补程序。 我们建议你考虑应用包含此修补程序的最新修复版本。 有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
960598 发布 SQL Server 2005 SP3 后发布的 SQL Server 2005 版本
对于 SQL Server 2005 SP4
此问题的修补程序首次在累积更新3中发布。有关如何为 SQL Server 2005 SP4 获取此累积更新包的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2507769 SQL Server 2005 SP4 累积更新包3注意 由于这些版本是累积的,因此每个新的修复版本都包含了以前的 SQL Server 2005 SP4 修补程序修复版本附带的所有修补程序和所有安全修补程序。 我们建议你考虑应用包含此修补程序的最新修复版本。 有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
937137 发布 SQL Server 2005 SP4 后发布的 SQL Server 2005 版本
对于 SQL Server 2008 SP1
此问题的修补程序首次在累积更新13中发布。有关如何获取此累积更新包的 SQL Server 2008 SP1 的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2497673 SQL Server 2008 SP1 的累积更新程序包13 注意 由于这些版本是累积的,因此每个新的修复版本都包含了以前的 SQL Server 2008 SP1 修补程序版本附带的所有修补程序和所有安全修补程序。 我们建议你考虑应用包含此修补程序的最新修复版本。 有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
970365 发布 SQL Server 2008 SP1 后发布的 SQL Server 2008 版本
对于 SQL Server 2008 SP2
此问题的修补程序首次在累积更新3中发布。有关如何为 SQL Server 2008 SP2 获取此累积更新包的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2498535 SQL Server 2008 SP2 累积更新包3注意 由于这些版本是累积的,因此每个新的修复版本都包含了以前的 SQL Server 2008 SP2 修复版本附带的所有修补程序和所有安全修补程序。 我们建议你考虑应用包含此修补程序的最新修复版本。 有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2402659 发布 SQL Server 2008 SP2 后发布的 SQL Server 2008 版本
状态
Microsoft 已确认这是在“适用范围”部分中列出的 Microsoft 产品存在的问题。
更多信息
有关如何使用 Transact-sql 创建同义词的详细信息,请访问以下 Microsoft 开发人员网络(MSDN)网站: