【发布时间】:2016-06-01 08:07:04
【问题描述】:
我有一个非常大的视图,它使用了许多表和其他视图。当我从这个大视图中选择 * 时,我得到一个错误
将数据类型 varchar 转换为数字时出错
问题是我不知道它到底发生在哪里。我是否必须深入研究所有涉及的对象,或者有办法知道问题到底出在哪里?
【问题讨论】:
-
必须有
UNION、JOIN或CASE表达式导致该错误。不幸的是,你没有简单的方法来指出它。我建议您发布VIEW定义。 -
您可以编写视图并运行它吗?它可能会将您指向导致问题的代码行。不然能不能查看一下预估的执行计划?这个问题听起来像是在某个地方的连接,因为它试图将 varchar 与数字字段进行比较并尝试转换 varchar 并失败。
-
@RichBenner 我做到了,但它没有指向线,这让我觉得它在连接的对象之一中。
-
发布您在视图中使用的 SQL
-
按顺序删除你的连接,看看它什么时候开始工作,一旦你知道哪个子视图坏了,然后对那个视图做同样的事情,直到你找到答案。
标签: sql sql-server sql-server-2012