繁体   English   中英

SQL Server 2005链接的服务器查询不返回预期的错误

[英]SQL Server 2005 Linked Server Query Does Not Return Expected Error

我正在查询链接的SQL Server,但没有收到在本地查询时遇到的错误。

像这样:

从TableName中选择CAST(ColumnName AS INT)

和这个:

从ServerName.DatabaseName.Schema.TableName选择CAST(ColumnName AS INT)

在本地运行时,第一个查询将返回错误“将表达式转换为数据类型int的算术溢出错误”。 因为某些值超出范围。

但是,从不同服务器运行的第二个查询仅返回所有“有效”行。

我希望这可以按设计工作,但是我已经在Google上搜索了,找不到在本地查询与分布式查询时解释行为差异的任何地方。 谁能指出我正确的方向? 我也想知道是否有一些配置选项可以改变这一点。

提前致谢。

查看SET ARITHABORT和SET ANSI_WARNINGS选项。 当两者都关闭时,将抑制溢出错误,并改为返回NULL。 可以在(至少)三个不同的地方设置它们:连接,数据库或代码。 这意味着您有时可能会发生意外的行为,因为有人设置了数据库选项却忘记了它,或者有人使用的连接库默认情况下将某些选项设置为不同。 此处的更多信息:

http://msdn.microsoft.com/zh-CN/library/ms191203(v=SQL.90).aspx

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM