private static string ScriptFragment(SqlScriptGenerator sg, TSqlFragment fragment) { string resultString; sg.GenerateScript(fragment, out resultString); return(resultString); }
public SqlFormatter() { this.parser = new TSql150Parser(false); this.generator = new Sql150ScriptGenerator(new SqlScriptGeneratorOptions { KeywordCasing = KeywordCasing.Lowercase, IncludeSemicolons = true, NewLineBeforeFromClause = true, NewLineBeforeOrderByClause = true, NewLineBeforeWhereClause = true, AlignClauseBodies = false, IndentationSize = 2 }); }
public TSqlScriptWriter(TextWriter writer) { _writer = new IndentedTextWriter(writer); _generator = new Sql150ScriptGenerator(); _generator.Options.AlignClauseBodies = true; _generator.Options.AsKeywordOnOwnLine = true; _generator.Options.KeywordCasing = KeywordCasing.Uppercase; _generator.Options.IncludeSemicolons = true; _generator.Options.IndentationSize = 4; _generator.Options.SqlVersion = SqlVersion.Sql150; _generator.Options.NewLineBeforeOpenParenthesisInMultilineList = true; _generator.Options.MultilineSelectElementsList = true; _generator.Options.MultilineInsertSourcesList = true; _generator.Options.MultilineInsertTargetsList = true; }
private static SqlScriptGenerator GetGenerator(GenerationOptions options) { SqlScriptGenerator generator = null; switch (options.SqlVersion) { case SqlVersion.Sql80: generator = new Sql80ScriptGenerator(); break; case SqlVersion.Sql100: generator = new Sql100ScriptGenerator(); break; case SqlVersion.Sql110: generator = new Sql110ScriptGenerator(); break; case SqlVersion.Sql120: generator = new Sql120ScriptGenerator(); break; case SqlVersion.Sql130: generator = new Sql130ScriptGenerator(); break; case SqlVersion.Sql140: generator = new Sql140ScriptGenerator(); break; case SqlVersion.Sql150: generator = new Sql150ScriptGenerator(); break; default: generator = new Sql90ScriptGenerator(); break; } generator.Options.Apply(options); return(generator); }
/// <summary> /// This method will parameterize the given SqlCommand. /// Any single literal on the RHS of a declare statement will be parameterized /// Any other literals will be ignored /// </summary> /// <param name="commandToParameterize">Command that will need to be parameterized</param> public static void Parameterize(this DbCommand commandToParameterize) { TSqlFragment rootFragment = GetAbstractSyntaxTree(commandToParameterize); TsqlMultiVisitor multiVisitor = new TsqlMultiVisitor(isCodeSenseRequest: false); // Use the vistor pattern to examine the parse tree rootFragment.AcceptChildren(multiVisitor); // Now walk the tree //reformat and validate the transformed command SqlScriptGenerator scriptGenerator = GetScriptGenerator(); scriptGenerator.GenerateScript(rootFragment, out string formattedSQL); if (!string.IsNullOrEmpty(formattedSQL)) { commandToParameterize.CommandText = formattedSQL; } commandToParameterize.Parameters.AddRange(multiVisitor.Parameters.ToArray()); multiVisitor.Reset(); }
public DdlVisitor(SqlScriptGenerator generator) { _generator = generator; }
public DdlVisitor(SqlScriptGenerator generator) { _generator = generator; }
public MsSqlScriptParser(TSqlParser parser, SqlScriptGenerator sqlScriptGenerator) { _parser = parser; _sqlScriptGenerator = sqlScriptGenerator; }