protected override void Generate(CreateNormalColumn op) { if (op.IsIdentity) { throw new NotImplementedException("Oracle 数据库暂时不支持创建自增列。"); } using (var sql = this.Writer()) { sql.Write("ALTER TABLE "); sql.Write(this.Quote(op.TableName)); sql.WriteLine(); sql.Indent++; sql.Write("ADD "); this.GenerateColumnDeclaration(sql, op.ColumnName, op.DataType, op.Length, false, op.IsForeignKey); this.AddRun(sql); } }
protected abstract void Generate(CreateNormalColumn op);
protected override void Generate(CreateNormalColumn op) { using (var sql = this.Writer()) { sql.Write("ALTER TABLE "); sql.Write(this.Quote(op.TableName)); sql.WriteLine(); sql.Indent++; sql.Write("ADD "); //自增列必然是不可空的,在创建列时必须同时把不可空约束给创建好了。 this.GenerateColumnDeclaration(sql, op.ColumnName, op.DataType, op.Length, op.IsIdentity, op.IsForeignKey); if (op.IsIdentity) { sql.Write(" IDENTITY(1,1)"); } this.AddRun(sql); } }