ПРОЦЕССЫ SQLCop вызывают предупреждения в проектах SSDT из-за неправильного корпуса - PullRequest
0 голосов
/ 02 мая 2019

К вашему сведению: публикуя это здесь, я не могу зарегистрироваться на 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 использует строчные буквы для возвращаемых столбцов. Когда вы создаете SSDT-проект с этими процессами, создайте флаги, например. «Имя» как случай несоответствия.

Вы можете отключить проверку регистра в проекте SSDT, но я бы предпочел, чтобы SQLCop соответствовал регистру, используемому SQL Server для столбцов своих системных представлений и функций.

Вторичная проблема с тем же запросом -

FROM    master..sysdatabases As D

Опять же, это работает просто отлично из-за способа, которым SQL Server разрешает системные представления, но он помечается SSDT, поскольку пропущенная схема подразумевает, что dbo и sysdatabase находятся в схеме sys, по крайней мере, начиная с SQL Server 2005.

Возможно, большее беспокойство вызывает то, что системные базы данных устарели. Базы данных IIUC могут быть заменой.

Надеясь, что Джордж все еще слушает на этом канале!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...