Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

Option to normalize casing of identifiers in the ScriptGenerator

Aberta
#177 0 comentários 0 reações 0 responsáveis Ver no GitHub

@ondrejtucny já está trabalhando nisso.

Desde 27/10/2025.

  • #178 de @ondrejtucny — aberto

Avaliação

Dificuldade
4/5
Tempo estimado
3-5 dias
Facilidade para iniciantes
38/100
Tipo de issue
Funcionalidade
Clareza
Razoavelmente clara
Status de atividade
Estagnada
Stack de tecnologia
sql
Domínio
databases

Direção de pesquisa

Comece localizando o ScriptGenerator e suas configurações atuais e, em seguida, acompanhe como os identificadores são emitidos no SQL gerado. Determine se a capitalização se aplica uniformemente ou se requer configurações separadas no nível da instância e do banco de dados; considera-se concluído quando PreserveOriginal continuar sendo o padrão e LowerCase e UpperCase usarem a capitalização invariável conforme especificado.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

formatting

SQL Server compares identifiers with respect to the CI/CS, AI/AS setting of the respective database's collation. While accent sensitivity has no effect on the SQL source code, case-sensitivity may have such an effect when the goal is to produce a 'canonical' form of the source code. The locale part of the collation plays no part in this.

Hence, the settings of the ScriptGenerator should be extended with an option to normalize casing of identifiers as follows:

  • PreserveOriginal — outputs identifiers as-is; this shall be the default behavior corresponding to the current state (no breaking change)
  • LowerCase — lower-case all identifiers when producing the output
  • UpperCase — upper-case all identifiers when producing the output

A simple ToLowerInvariant() / ToUpperInvariant() should be used.

Question is, whether the ScriptGenerator should support separate settings for instance-level (global) objects versus objects in a database. This would significantly increase the complexity. See also Database identifiers:

The collation of an identifier depends on the level at which it's defined. Identifiers of instance-level objects, such as logins and database names, are assigned the default collation of the instance. Identifiers of objects in a database, such as tables, views, and column names, are assigned the default collation of the database.

Linguagem predominante
GAP
Estrelas
278
Forks
46
Merge médio
9d 23h
PRs com merge (30d)
2

Preparar o ambiente

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de microsoft/SqlScriptDOM

Todas as issues de microsoft/SqlScriptDOM

Issues semelhantes

Mais issues de Databases

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.