API to parse/split GO statements into batches
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Facilidade para iniciantes
- 35/100
Direção de pesquisa
Comece revisando o uso existente de Microsoft.SqlServer.Management.Common.ExecuteBatch e GetStatements descrito na issue, juntamente com a discussão vinculada na issue 4. Defina a API pública compatível para dividir T-SQL em batches, incluindo GO 20, comentários e strings multilinha, e então verifique se seus resultados correspondem ao comportamento esperado do SQL Management Studio.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
Per comment on another issue I am opening this to ask for an API in similar effect to this wrapped function:
/// <summary>
/// Split/Parse a TSQL string into batches by the "GO" statement.
/// Mirrors SQL Management Studio's parsing (because it is the same)
/// </summary>
public static List<string> ParseSQLBatches(string tsql)
{
var batchParser = new Microsoft.SqlServer.Management.Common.ExecuteBatch();
var ret = batchParser.GetStatements(tsql);
return ret.Cast<string>().ToList();
}
The reasoning behind this is that we have scripts written by us for schema/data migrations that commonly utilize GO statements in many ways. We can't easily rely on a simplified "Split on bare GO statements outside of comments" due to sometimes having GO 20 or other such fun things, or multi-line strings etc that might have GO in them for unrelated reasons. Although we could write a parser, that SMO provided one that out of the box (as far as we noticed) was identical to SSMS's was very convenient for us. It seems that this exposed class/api that we were relying on was an implementation detail/surface that is going away in an upcoming release. So the ask here is to facilitate at least this minimal API of "given TSQL string, here it is split-and-duplicated-etc into individual batches".
- Linguagem predominante
- C#
- Estrelas
- 143
- Forks
- 28
- Métricas de merge de PRs
- Nenhum PR com merge em 30d
Guia de contribuição
Nenhum guia de contribuição indexado para este repositório
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de microsoft/sqlmanagementobjects
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 62/100
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 72/100
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 74/100
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 78/100
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 68/100
Todas as issues de microsoft/sqlmanagementobjects
Issues semelhantes
-
untriaged
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 88/100
dotnet/dotnet-api-docs#13095 ·
-
area-deployment area-integrations triage:bot-seen
Dificuldade 2/5 Meio dia Facilidade para iniciantes 86/100
-
type/automation type/tech-debt
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 84/100
-
bug
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 90/100
newrelic/newrelic-dotnet-agent#3850 · 1 comentário ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 88/100
LuckyPennySoftware/AutoMapper#4660 ·