【问题标题】:Suppress Database Project errors and warnings in visual studio 2010在 Visual Studio 2010 中抑制数据库项目错误和警告
【发布时间】:2021-04-06 16:30:53
【问题描述】:

我的应用程序中有一个数据库项目,并且想要禁止该项目引发的错误/警告。 .首先有可能吗?

我想我不清楚我的问题,通过压制我的意思是当我构建我的解决方案时,错误(实际上不是错误)显示在错误列表中,我只是希望所有与数据库项目相关的错误都应该不显示在错误列表中。

我正在使用 VS2010。

提前致谢

【问题讨论】:

  • 我一直在努力解决同样的问题。创建新的 VS2010 SQL-2008 数据库项目,导入“数据库对象和设置”,然后尝试构建项目后,我收到大量编译错误。所有这些错误都相对相同,“SQL3006: User: [X] has an unresolved reference to Login [X]”。我还尝试将本地 msdb.schema 和 master.schema 引用添加到项目中。但是,无济于事:(。
  • 您可以从解决方案的构建操作中排除数据库项目,一旦我这样做了,我的数据库项目错误(实际上不是错误)被转换为警告并且我能够正常工作,但是问题仍然是,每当解决方案中出现实际错误时,所有数据库警告都被转换为错误,我在查找实际错误时遇到了很多问题,我仍在寻找一种方法,以便所有数据库项目警告都不是显示在任一窗口中(错误和警告窗口)。如果我找到任何解决方案会发布
  • 对所有已回答的建议.. 当然,他想构建并查看结果的变化。当我在咆哮时,为什么我看到几个几乎相同的答案?你们只是喜欢在互联网上阅读自己的名字,对吧?
  • 请务必查看stackoverflow.com/a/43321023/607701。它解决了问题,即使它没有那么多的选票。

标签: database visual-studio-2010 suppress-warnings


【解决方案1】:

要取消特定警告,请转到项目属性 -> 构建。

在“禁止 Transact-SQL 警告:”字段中以逗号分隔格式输入警告编号(即不带“SQL”)。

【讨论】:

  • 没有 SQL 前缀。要抑制 SQL04151,只需输入 04151
  • 你是否声称这实际上也抑制了错误,因为它不适合我......我做错了什么吗?
  • 我认为您无法抑制错误。应该解决了。
  • 我还必须关闭并重新打开解决方案才能清除警告。
  • 这对我不起作用 - 首先没有“抑制 Transact-SQL 警告”框,但只有一个“抑制警告”,但它不会抑制 SQL 错误。
【解决方案2】:

选择项目中的文件:

示例:projectDatabase\ddl\table_name.sql

在文件集的属性窗口中

构建操作:无。

在构建时,它不会在此文件中查找错误或警告。

【讨论】:

  • 这是关于抑制构建错误的正确答案。当数据库项目仅用于源代码控制时,这非常有用,并且 MS 应该更好地了解并包含不将整个数据库项目包含到解决方案构建中的选项。建立一个小型网站并查看它如何在数据库中生成 10,000 个错误,而不是进入并将每个 SQL 文件的构建选项从 Build 更改为 Not in build 是噩梦。
  • 这也有从 sql 模式比较中删除项目文件的特殊副作用。在将 vw_MyView 设置为构建操作“无”后,sql 模式比较 总是 认为这是一个新文件(即使它已经在项目中)。郁闷!!!
  • @RobertAltman 我遇到了同样的问题,所以我尝试了下面 Richard 的解决方案,该解决方案不会弄乱架构比较(VS2017)。
【解决方案3】:

刚刚在 Visual Studio 2015 中遇到了这个问题。

在“错误列表”面板标题的中间,有一个(未命名的)下拉菜单,其值为“Build + Intellisense”、“Build Only”、“Intellisense Only”。我的设置为“构建 + 智能感知”。将其更改为“仅构建”消除了所有 (200 多个) 错误。

【讨论】:

  • 我在 VS 2017 中,这个答案绝对是最有帮助的。
【解决方案4】:

迟到总比没有好:

选项 -> 数据库工具 -> 数据库错误和警告 -> 将最大值设置为 0,从现在开始,错误窗口将有一个条目,显示类似

错误 1 ​​已达到最大错误数 0。共遇到 76 个错误、0 个警告和 0 个消息。

--编辑--来自下面的评论...非常有帮助
在 VS 11 中,此选项似乎已移至工具 > 选项 > SQL Server 工具 > 常规

【讨论】:

  • 在 VS 11 中,此选项似乎已移至工具 > 选项 > SQL Server 工具 > 常规,仅供参考。
  • 这仍然会阻止项目的构建。
  • @Aaroninus 问题并没有说明它想继续建设
  • @TaylorLafrinere 同样适用于 VS2019
【解决方案5】:

在 VS 2015 中,您可以通过 2 种方式抑制警告。

项目级别

我不建议这样做,因为我只喜欢在我确切知道我在压制什么的情况下压制警告。例如,在 C# 中,我们可以非常精细地使用 SuppressMessageAttribute

不过,方法如下:

右键单击数据库项目 > 属性 > 构建 > 抑制 Transact-SQL 警告:

输入要禁止显示的警告,例如 4151。

文件级别

我更喜欢/建议使用此选项,因为与上述选项相比,它更精细。

在解决方案资源管理器中右键单击文件1 > 属性 > 抑制 T-SQL 警告

输入要禁止显示的警告,例如 4151。


1。您必须右键单击解决方案资源管理器中的文件节点。如果您在编辑器中右键单击文件,您将获得不同的选项。

可能存在另一种方式,但我目前只知道这两种方式。

【讨论】:

  • 目前最有帮助的答案,因为它是描述文件级别抑制的唯一答案
【解决方案6】:

您可以从解决方案配置中删除项目的构建/部署。这样 VS 根本不会尝试构建数据库项目。

当然,数据库项目中的任何更改都会被忽略。

要更改或创建新的解决方案文件,请右键单击解决方案资源管理器中的解决方案节点并选择属性。在该对话框中,配置节点(在配置属性下)选项卡并单击配置管理器。

这允许您创建新配置并编辑现有配置,并且每个配置都映射到一个项目配置(要添加一个新配置,请在活动解决方案下拉列表中选择 <new>)。

当然,更好的方法是修复错误。

【讨论】:

  • 我已经从解决方案中删除了构建/部署选项。
  • 在实践中“隐藏错误”与“不构建”有何不同?
  • 我不知道“隐藏错误”选项,你能详细说明一下吗?
  • @Sumit:我会重新表述:“隐藏错误”选项在实践中与“不构建”选项有何不同?
  • @Richard:问题是“不构建”选项没有隐藏错误,当我构建解决方案时,来自数据库项目的错误显示在错误列表中。
【解决方案7】:

我的解决方法(在 VS2019 中)是:

1) 将此脚本的构建操作设置为无。 => 为了避免错误信息 2) 创建一个 PostDeployment 脚本(如果不存在) 3)添加行 :r .\Path_script\script_name.sql => 发布时执行脚本(如果需要,在之前添加一个drop语句)

在菜单 SQL->执行设置 -> SQLCMD 模式中激活 SQLCMD 模式

希望对您有所帮助。

【讨论】:

  • 这也是在 VS 2019 中为我解决的问题;该文件已设置为不构建,并且抑制设置用于警告,而不是错误,因此无法抑制 SQL80001,
  • 设置 SQLCMD 模式为我修复了它。我必须单击特定的 .sql 文件才能让 SQL 选项出现在 VS 2019 菜单中。
【解决方案8】:

回到警告和 Visual Studio 2019 的公认答案:

1) 右键单击​​数据库项目并选择属性 Database solution

2) 在“Build”和“Suppress Transact-SQL warnings:”下输入您要抑制的SQL 警告编号,例如:SQL71502 您输入71502。您可以以逗号分隔的方式输入多个警告抑制代码。 Example of suppression codes for unresolved reference to object

3) 保存您的解决方案,警告应该会消失。您可能需要输入多个警告代码才能使警告变为 0。

【讨论】:

    【解决方案9】:

    在 Visual Studio 2017 中,您可以执行以下操作:转到工具 --> 选项 --> SQL server 工具 --> 在错误和警告下,设置“最大编号。错误和警告......”为 1。

    【讨论】:

      【解决方案10】:
      1. 您可以在构建时排除该项目,方法是右键单击该项目并在 Windows 应用程序中选择“排除项目”。如果是 Web 应用,则为“卸载项目”。

      2. 显示/隐藏错误列表

        • 转到工具 > 选项

        • 扩展项目和解决方案

        • 选择常规。

        • 在右侧,首先检查 框是 '总是显示错误列表,如果 构建完成并出现错误'

      【讨论】:

      • 对不起,我想我的问题不清楚。请查看已编辑的问题
      • 它不会隐藏所有项目的错误吗?我只想隐藏我的数据库项目的错误。
      猜你喜欢
      • 2011-04-06
      • 1970-01-01
      • 2010-10-29
      • 2017-08-12
      • 1970-01-01
      • 2017-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多