From ccae599b249456a0fd1bd070d0b8f979945ea73e Mon Sep 17 00:00:00 2001 From: Kijin Sung Date: Mon, 11 Aug 2014 12:21:53 +0900 Subject: [PATCH] Implement modifyColumn() for MS SQL --- classes/db/DBMssql.class.php | 42 +++++++++++++++++++++++++++++++++++- 1 file changed, 41 insertions(+), 1 deletion(-) diff --git a/classes/db/DBMssql.class.php b/classes/db/DBMssql.class.php index 784f3a03c..1586ee27e 100644 --- a/classes/db/DBMssql.class.php +++ b/classes/db/DBMssql.class.php @@ -427,6 +427,46 @@ class DBMssql extends DB $this->_query($query); } + /** + * Modify a column + * @param string $table_name table name + * @param string $column_name column name + * @param string $type column type, default value is 'number' + * @param int $size column size + * @param string|int $default default value + * @param boolean $notnull not null status, default value is false + * @return bool + */ + function modifyColumn($table_name, $column_name, $type = 'number', $size = '', $default = '', $notnull = false) + { + $type = $this->column_type[$type]; + if(strtoupper($type) == 'INTEGER') + { + $size = ''; + } + + $query = sprintf("alter table %s%s alter column %s ", $this->prefix, $table_name, $column_name); + if($size) + { + $query .= sprintf(" %s(%s) ", $type, $size); + } + else + { + $query .= sprintf(" %s ", $type); + } + + if($default) + { + $query .= sprintf(" default '%s' ", $default); + } + if($notnull) + { + $query .= " not null "; + } + + return $this->_query($query) ? true : false; + } + /** * Check column exist status of the table * @param string $table_name table name @@ -448,7 +488,7 @@ class DBMssql extends DB } return true; } - + /** * Get information about a column * @param string $table_name table name