コード例 #1
0
        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("---");
        }
コード例 #2
0
 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));
 }
コード例 #3
0
 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());
 }
コード例 #4
0
ファイル: SqlListener.cs プロジェクト: elshev/DataGenerator
        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);
        }