症状
请考虑以下情况:
-
创建链接服务器到 Microsoft SQL Server 2012。
-
你尝试运行一个 SQL 语句来调用 sys.sp_tables_info_90_rowset_64 系统存储过程以从 SQL Server 2012 的默认实例访问表。
-
该表包含2500000000条以上的记录。
在这种情况下,您会收到以下错误消息:
消息8115、级别16、状态2、过程 sp_tables_info_90_rowset_64、行9Arithmetic 将表达式转换为 int 数据类型时发生溢出错误。
注意如果将 SQL Server 2012 配置为目标服务器,则会出现此问题。
解决方案
累积更新信息
SQL Server 2012 Service Pack 1 的累积更新包1
此问题的修补程序首次在累积更新1中发布。有关如何获取此累积更新包的 SQL Server 2012 Service Pack 1 的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2765331 SQL Server 2012 Service Pack 1 的累积更新包1注意 由于这些版本是累积的,因此每个新的修复版本都包含以前的 SQL Server 2012 修复版本附带的所有修补程序和所有安全修补程序。 我们建议你考虑应用包含此修补程序的最新修复版本。 有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2772858 在发布 SQL Server 2012 Service Pack 1 之后发布的 SQL Server 2012 版本
SQL Server 2012
此问题的修补程序首次在累积更新4中发布。有关如何为 SQL Server 2012 获取此累积更新包的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2758687 SQL Server 2012 累积更新程序包4注意 由于这些版本是累积的,因此每个新的修复版本都包含以前的 SQL Server 2012 修复版本附带的所有修补程序和所有安全修补程序。 我们建议你考虑应用包含此修补程序的最新修复版本。 有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2692828 在 SQL Server 2012 发布后发布的 SQL Server 2012 版本
状态
Microsoft 已确认这是在“适用范围”部分中列出的 Microsoft 产品存在的问题。
更多信息
有关如何在 SQL Server 2012 中配置链接服务器的详细信息,请转到以下 MSDN 网站: