public override void EnterColumn_definition([NotNull] TSqlParser.Column_definitionContext context) { base.EnterColumn_definition(context); string debug = context.GetText(); Console.WriteLine("EnterColumn_definition:"); Console.WriteLine(debug); Console.WriteLine("---"); }
public override string VisitColumn_definition([NotNull] TSqlParser.Column_definitionContext context) { foreach (var child in context.children) { if (child is ITerminalNode && child.GetText() == "SPARSE") { Remove(child); } } return(base.VisitColumn_definition(context)); }
public override void EnterColumn_definition([NotNull] TSqlParser.Column_definitionContext context) { base.EnterColumn_definition(context); if (_ddlStatement != null) { if (_ddlStatement is CreateTableStatement) { (_ddlStatement as CreateTableStatement).ColumnNamesAndTypes.Add(GetWhiteSpaceFormat(context)); } } Debug.WriteLine(context.GetText()); }
public void ProcessColumnDefinition(TSqlParser.Column_definitionContext context) { if (TableInfo == null) { return; } string columnName = context.id(0).GetText(); string columnTypeName = "int"; var dataTypeContext = context.data_type(); if (dataTypeContext != null) { columnTypeName = dataTypeContext.id().GetText(); } SystemColumnType systemColumnType = SqlServerHelper.SqlServerToSystemColumnType(columnTypeName); ColumnInfo columnInfo = ColumnInfoHelper.CreateColumnInfo(systemColumnType, columnName); columnInfo.IsComputed = context.AS()?.GetText().ToLower() == "as"; if (dataTypeContext != null) { string decimal1Text = dataTypeContext.DECIMAL(0)?.GetText(); string decimal2Text = dataTypeContext.DECIMAL(1)?.GetText(); int decimal1 = decimal1Text == null ? 0 : int.Parse(decimal1Text); int decimal2 = decimal2Text == null ? 0 : int.Parse(decimal2Text); columnInfo.IsIdentity = dataTypeContext.IDENTITY()?.GetText().ToLower() == "identity"; if (columnInfo.IsIdentity) { columnInfo.IdentitySeed = decimal1; columnInfo.IdentityIncrement = decimal2; } else { columnInfo.MaxLength = decimal1; columnInfo.SetMaxPrecision(columnInfo.MaxLength); columnInfo.Scale = decimal2; } } bool isNot = !string.IsNullOrWhiteSpace(context.null_notnull().NOT()?.GetText()); bool isNull = !string.IsNullOrWhiteSpace(context.null_notnull().NULL()?.GetText()); columnInfo.IsNullable = !(isNot && isNull); TableInfo.Columns.Add(columnInfo); }