34

SQL Server Data Tools中,我想禁止出现 SQL71502(“--- 对对象 --- 有未解析的引用”)的一些但不是全部出现。我知道我可以通过项目属性、构建、抑制 Transact-SQL 警告来抑制,但这将全局抑制。这可以做到吗?

4

5 回答 5

57

如果需要,您可以在包含生成警告的代码的单个文件级别禁止它。像这样的东西。

<Build Include="Stored Procedures\X.sql">
    <SuppressTSqlWarnings>71502</SuppressTSqlWarnings>
</Build>
于 2014-02-27T03:05:38.433 回答
11

您不清楚什么会决定哪些 71502 消息会被抑制,哪些不会,但根据我自己的理解和研究,我认为答案是相同的。简而言之,没有。

您可以禁止所有警告或基于特定代码 ( 71502 ) 的警告,但这会尽可能细化。

http://msdn.microsoft.com/en-us/library/hh272681(v=VS.103).aspx

此链接讨论了将警告提升为错误,但也演示了如何使用抑制过滤器 - 基于您可能已经知道的问题。

http://social.msdn.microsoft.com/Forums/is/ssdt/thread/9b698de1-9f6d-4e51-8c73-93c57355e768

于 2012-06-01T17:27:47.733 回答
8

听起来您正在尝试在对象/文件级别执行此操作,例如存储过程。

如果这是您想要的粒度级别,那么在打开项目的情况下,选择对象,然后在属性中选择抑制 TSql 警告,输入 71502 就可以了。

该对象的其他警告仍将引发 - 其他对象中的 71502 警告也将引发。

于 2014-08-08T20:04:16.310 回答
3

如果警告来自存储过程,您可以通过将警告的数字部分(如果需要更多信息,以逗号分隔)添加到 sproc 属性中的 Suppress TSql 警告部分来设置特定 sproc 的 Suppress。

于 2014-06-04T14:25:08.340 回答
2

如前所述,可以在对象级别忽略所有出现的警告/错误。如果您只想忽略不可能的对象中出现的某种警告。

我找到了一种可能对您也有帮助的解决方法。

在我的例子中,我在存储过程中引用了一个由“select * into ...”语句创建的表,Visual Studio 无法处理这个新表上的任何后续引用,并且我收到很多 SQL71502 警告。为了欺骗 VS,我在我的 SP 顶部创建了以下内容:

IF 1=2 CREATE mytable(...)

这样做 VS 可以验证所有引用,但是因为 if 子句的条件总是错误的,所以对我的 SP 没有负面影响。请记住在必要时更新 CREATE 语句。

于 2015-02-09T11:13:29.350 回答