Exemple #1
0
        public override void Process(Expressions.RenameColumnExpression expression)
        {
            string columnDefinitionSql = string.Format(@"
SELECT CONCAT(
          CAST(COLUMN_TYPE AS CHAR),
          IF(ISNULL(CHARACTER_SET_NAME),
             '',
             CONCAT(' CHARACTER SET ', CHARACTER_SET_NAME)),
          IF(ISNULL(COLLATION_NAME),
             '',
             CONCAT(' COLLATE ', COLLATION_NAME)),
          ' ',
          IF(IS_NULLABLE = 'NO', 'NOT NULL ', ''),
          IF(IS_NULLABLE = 'NO' AND COLUMN_DEFAULT IS NULL,
             '',
             CONCAT('DEFAULT ', QUOTE(COLUMN_DEFAULT), ' ')),
          IF(COLUMN_COMMENT = '', '', CONCAT('COMMENT ', QUOTE(COLUMN_COMMENT), ' ')),
          UPPER(extra))
  FROM INFORMATION_SCHEMA.COLUMNS
 WHERE TABLE_NAME = '{0}' AND COLUMN_NAME = '{1}'", FormatHelper.FormatSqlEscape(expression.TableName), FormatHelper.FormatSqlEscape(expression.OldName));

            var columnDefinition = Read(columnDefinitionSql).Tables[0].Rows[0].Field <string>(0);

            Process(Generator.Generate(expression) + columnDefinition);
        }
 public override void Process(Expressions.RenameColumnExpression expression)
 {
     truncator.Truncate(expression);
     CheckColumn(expression.TableName, expression.OldName);
     CheckColumn(expression.TableName, expression.NewName);
     LockColumn(expression.TableName, expression.OldName);
     LockColumn(expression.TableName, expression.NewName);
     InternalProcess(Generator.Generate(expression));
 }
Exemple #3
0
 public override string Generate(Expressions.RenameColumnExpression expression)
 {
     return(CompatibilityMode.HandleCompatibilty("This feature not directly supported by most versions of DB2."));
 }
Exemple #4
0
 public void Process(Expressions.RenameColumnExpression expression)
 {
     Process(Generator.Generate(expression));
 }