【问题标题】:Unused variable detection in SQL ServerSQL Server 中未使用的变量检测
【发布时间】:2013-07-12 21:30:56
【问题描述】:

有没有办法识别已创建(甚至创建并设置为某个值)但不再使用的局部变量?我正在考虑 IDE 何时会用波浪线在这些变量下划线。

如果这不是可以在 SSMS 中启用的功能,是否有任何插件可以做到这一点?

(如果重要的话,对 SQL Server 2008 R2 特别感兴趣)

感谢您的洞察力。

【问题讨论】:

  • “查找未使用的变量和参数”在SQL Prompt 5的功能列表中

标签: sql-server sql-server-2008 tsql variables ssms


【解决方案1】:

ApexSQL Refactor 是一个免费的 SSMS 和 VS SQL 格式化和重构插件,具有查找未使用的变量和参数并通过识别和删除未使用的参数和变量来清理代码的功能。

您可以在article 中找到有关此功能的更多信息

免责声明:我作为支持工程师在 ApexSQL 工作

【讨论】:

  • 我花了大约 30 分钟的时间检查了这个功能,但似乎准确的情况很多。似乎总是认为用户定义的类型是未使用的。此外,一些简单的事情:Declare @today date;Select @today = getdate(); 插件认为@today 未使用。
  • @Ojen 此问题已在即将发布的 ApexSQL Refactor 中修复。在您的情况下,它显示“@today”变量未使用,因为它仅被声明但未在 SELECT 或 WHERE 子句中使用。对于任何数据类型,它都会显示相同的结果,而不仅仅是 UDT。谢谢,M
  • 这似乎从未得到修复(或重新引入)。 “变量有一个赋值,但没有一个赋值被使用过”的每个实例都用于一个被赋值并随后在条件表达式中使用的变量。
【解决方案2】:

很遗憾,SSMS 没有这样做。完全没有。这在某种程度上让我感到惊讶,因为它并不难确定。

我不知道插件,但史密斯先生在他的评论中有一个建议。

【讨论】:

    【解决方案3】:

    您可以从http://www.sqlcodeguard.com/ 试用 SqlCodeGuard - SSMS 的免费插件

    它有一堆 t-sql 代码检查和规则“MI005 变量已声明但从未使用”

    【讨论】:

    • 趋势科技告诉我该网站有问题,但软件可以运行(在我运行病毒检查后)
    猜你喜欢
    • 1970-01-01
    • 2014-05-07
    • 2016-09-23
    • 2018-04-29
    • 1970-01-01
    • 1970-01-01
    • 2012-01-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多