@@ -70,7 +70,6 @@ def change_column(table_name, column_name, type, options = {})
7070 end
7171 sql_commands . each { |c | do_execute ( c ) }
7272 end
73-
7473 def change_column_default ( table_name , column_name , default )
7574 remove_default_constraint ( table_name , column_name )
7675 do_execute "ALTER TABLE #{ quote_table_name ( table_name ) } ADD CONSTRAINT #{ default_constraint_name ( table_name , column_name ) } DEFAULT #{ quote ( default ) } FOR #{ quote_column_name ( column_name ) } "
@@ -80,6 +79,11 @@ def rename_column(table_name, column_name, new_column_name)
8079 schema_cache . clear_table_cache! ( table_name )
8180 detect_column_for! table_name , column_name
8281 do_execute "EXEC sp_rename '#{ table_name } .#{ column_name } ', '#{ new_column_name } ', 'COLUMN'"
82+ rename_column_indexes ( table_name , column_name , new_column_name )
83+ end
84+
85+ def rename_index ( table_name , old_name , new_name )
86+ execute "EXEC sp_rename N'#{ table_name } .#{ old_name } ', N'#{ new_name } ', N'INDEX'"
8387 end
8488
8589 def remove_index! ( table_name , index_name )
@@ -326,8 +330,8 @@ def views_real_column_name(table_name,column_name)
326330 # === SQLServer Specific (Identity Inserts) ===================== #
327331
328332 def query_requires_identity_insert? ( sql )
329-
330- if insert_sql? ( sql )
333+
334+ if insert_sql? ( sql )
331335 table_name = get_table_name ( sql )
332336 id_column = identity_column ( table_name )
333337 id_column && sql =~ /^\s *(INSERT|EXEC sp_executesql N'INSERT)[^(]+\( [^)]*\b (#{ id_column . name } )\b ,?[^)]*\) /i ? quote_table_name ( table_name ) : false
@@ -354,7 +358,7 @@ def set_identity_insert(table_name, enable = true)
354358 rescue Exception => e
355359 raise ActiveRecordError , "IDENTITY_INSERT could not be turned #{ enable ? 'ON' : 'OFF' } for table #{ table_name } "
356360 end
357-
361+
358362 def identity_column ( table_name )
359363 schema_cache . columns ( table_name ) . detect ( &:is_identity? )
360364 end
0 commit comments