[英]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.