<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -662,12 +662,13 @@ module ActiveRecord
       end
       
       def change_column(table_name, column_name, type, options = {})
+        remove_default_constraint(table_name, column_name)
         sql_commands = []
         change_column_sql = &quot;ALTER TABLE #{quote_table_name(table_name)} ALTER COLUMN #{quote_column_name(column_name)} #{type_to_sql(type, options[:limit], options[:precision], options[:scale])}&quot;
         change_column_sql &lt;&lt; &quot; NOT NULL&quot; if options[:null] == false
         sql_commands &lt;&lt; change_column_sql
+
         if options_include_default?(options)
-          remove_default_constraint(table_name, column_name)
           sql_commands &lt;&lt; &quot;ALTER TABLE #{quote_table_name(table_name)} ADD CONSTRAINT #{default_name(table_name,column_name)} DEFAULT #{quote(options[:default])} FOR #{quote_column_name(column_name)}&quot;
         end
         sql_commands.each { |c| do_execute(c) }</diff>
      <filename>lib/active_record/connection_adapters/sqlserver_adapter.rb</filename>
    </modified>
    <modified>
      <diff>@@ -30,6 +30,20 @@ class MigrationTestSqlserver &lt; ActiveRecord::TestCase
     
   end
   
+  context 'For changing column' do
+    
+    should 'not raise exception when column contains default constraint' do
+      # TODO: make sure people's lock version contains default constraint
+      old_columns = Person.connection.columns(Person.table_name)
+      assert old_columns.find { |c| c.name == 'lock_version' and !c.default.nil?  }
+    
+      assert_nothing_raised { Person.connection.change_column 'people', 'lock_version', :string }
+      
+      new_columns = Person.connection.columns(Person.table_name)
+      assert new_columns.find { |c| c.name == 'lock_version' and c.type == :string }
+    end
+    
+  end
   
 end
 </diff>
      <filename>test/cases/migration_test_sqlserver.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>7bdf4d80e21729930531e82bb3accb5b37b4c15c</id>
    </parent>
  </parents>
  <author>
    <name>gcheong</name>
    <email>gary.s.cheong@aexp.com</email>
  </author>
  <url>http://github.com/iawgens/2000-2005-adapter/commit/0564f73506cbe2ed71f8dd6244cb75c97b7d069d</url>
  <id>0564f73506cbe2ed71f8dd6244cb75c97b7d069d</id>
  <committed-date>2009-10-28T08:13:38-07:00</committed-date>
  <authored-date>2009-10-28T08:13:38-07:00</authored-date>
  <message>Fixed changing column when the column has existing default constraint</message>
  <tree>24ad8bbfa60e76d5148698983c86b206718a0c43</tree>
  <committer>
    <name>gcheong</name>
    <email>gary.s.cheong@aexp.com</email>
  </committer>
</commit>
