由于不正确的大小写,SQLCop procs在SSDT项目中引起警告

时间:2019-05-02 13:17:45

标签: sql-server stored-procedures sqlcop

仅供参考:由于无法在LessThanDot上注册,因此在此处发布。不确定是否是我们公司的防火墙(不会感到惊讶!)

我开始将SQL Cop用作新项目质量控制的一部分。我将所有过程保存在SSDT项目中。我注意到,尽管项目构建正确,但由于大小写不同,它会标记许多带有警告的语句。一个例子是

[SQLCop].[test Old Backups]
...
    Select  @Output = @Output + 'Outdated Backup For '+ D.Name + Char(13) + Char(10)
    FROM    master..sysdatabases As D         
            Left Join msdb.dbo.backupset As B             
              On  B.database_name = D.Name  

当然,这很好,因为master设置为不区分大小写,但是sysdatabases视图对返回的列使用小写字母。当您使用这些procs构建SSDT项目时,请构建标记,例如“名称”作为大小写不匹配。

您可以在SSDT项目中禁用大小写检查,但是我宁愿看到SQLCop符合SQL Server在其系统视图和功能列中使用的大小写。

同一查询的次要问题是

FROM    master..sysdatabases As D

同样,由于SQL Server解析系统视图的方式,这种方法工作得很好,但是由于省略的架构暗示dbo和sysdatabase在sys架构中(至少自SQL Server 2005起),因此它被SSDT标记。

也许更值得关注的是sysdatabases已过时。 IIUC sys.databases可能是替代品。

希望乔治仍在收听此频道!

0 个答案:

没有答案