rails-sqlserver / activerecord-sqlserver-adapter

SQL Server Adapter For Rails
MIT License
972 stars 559 forks source link

Fix for adding timestamps to table #1086

Closed aidanharan closed 1 year ago

aidanharan commented 1 year ago

In SQL Server only the first column added should have the ADD keyword.

Incorrect SQL:

ALTER TABLE [my_table] ADD [created_at] datetime2(6) NOT NULL, ADD [updated_at] datetime2(6) NOT NULL

Correct SQL:

ALTER TABLE [my_table] ADD [created_at] datetime2(6) NOT NULL, [updated_at] datetime2(6) NOT NULL

Fixes test:

ActiveRecord::Migration::ColumnsTest#test_add_timestamps_single_statement:
ActiveRecord::StatementInvalid: TinyTds::Error: Incorrect syntax near the keyword 'ADD'.
    activerecord-sqlserver-adapter/lib/active_record/connection_adapters/sqlserver/database_statements.rb:28:in `do'
    ...
bin/rails test /usr/local/bundle/bundler/gems/rails-7b670848e136/activerecord/test/cases/migration/columns_test.rb:399