Sql server 抑制SQL Server SSDT中的某些警告

Sql server 抑制SQL Server SSDT中的某些警告,sql-server,sql-server-data-tools,Sql Server,Sql Server Data Tools,在中,我想抑制SQL71502的一些(但不是全部)出现(“---有一个未解析的对象--”引用)。我知道我可以通过项目属性、生成、抑制Transact-SQL警告来抑制,但这将全局抑制。这可以做到吗?你不清楚什么会决定哪些71502条消息会被禁止,哪些不会被禁止,但基于我自己的理解和研究,我认为答案是一样的。简言之,没有 您可以抑制所有警告,或基于特定代码(71502)的警告,但这是最精细的 此链接讨论如何提升对错误的警告,但也演示了如何使用抑制过滤器-这基于您可能已经知道的问题 您可以在单个文

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

你不清楚什么会决定哪些71502条消息会被禁止,哪些不会被禁止,但基于我自己的理解和研究,我认为答案是一样的。简言之,没有

您可以抑制所有警告,或基于特定代码(71502)的警告,但这是最精细的

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


您可以在单个文件级别抑制它,其中包含生成警告的代码(如果需要)。像这样的

<Build Include="Stored Procedures\X.sql">
    <SuppressTSqlWarnings>71502</SuppressTSqlWarnings>
</Build>

71502

如果警告源于存储过程,则可以通过将警告的数字部分(如果需要更多,则以逗号分隔)添加到存储过程属性中的SUPPRES TSql warning部分来设置特定存储过程上的SUPPRES。

听起来您正试图在对象/文件级别执行此操作,就像存储过程一样

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


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

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

我找到了一个可能对你也有帮助的解决办法

在我的例子中,我引用了一个存储过程中的一个表,该存储过程是由“select*into…”语句创建的,Visual Studio无法处理这个新表上的任何以下引用,并且我收到了大量SQL71502警告。 要欺骗我在SP顶部创建的VS,请执行以下操作:

IF 1=2 CREATE mytable(...)

执行此操作VS可以验证所有引用,但由于if子句的条件始终为false,因此对我的SP没有负面影响。请记住,如果需要,请更新CREATE语句。

@Daniel:True,这基本上是以类似的方式在SQLProj文件中设置属性。@Varun:对我不起作用,因此,必须通过项目属性、构建、禁止Transact-SQL警告来禁用它,这非常有效。虽然最初没有,但直到我更改了
的顺序,即,我立即将标记移动到
标记之后。我的Visual Studio版本是16.10.0。这可能会帮助其他读者。这真的有效吗?因为在尝试WarningLevel或nowarn时,它们仍然在msbuild上显示为警告。@StingyJack应该注意的是,只有警告的数字部分才是您应该使用的。我一直在警告支持中尝试“SQL71558”,但它不起作用。然而,使用“71558”确实有效。嗯