MSSQL java.sql.Types.TIMESTAMP should map to DateTime

Description

From http://forum.liquibase.org/topic/lb-3-0-7-against-mssql-datatype-timestamp-instead-of-datetime#49382000000929034

we have tested LB 3.0.7 (using Ant 1.8.2) with our scripts (in order to upgrade from LB 2.0.1) against MSSQL 2008 R2 (v10.50.4000.0) and found following error:

Error executing SQL CREATE TABLE [dbo].[TABLE] ([Column1] INT NOT NULL, [Column2] VARCHAR(32) NOT NULL, [Column3] VARCHAR(88) NOT NULL, [Column4] timestamp NOT NULL, [Column5] VARCHAR(28), [Column6] VARCHAR(32), [Column7] timestamp, [Column8] INT, [Column9] timestamp NOT NULL, [Column10] INT, [Column11] INT, [Column12] INT); A table can only have one timestamp column. Because table 'Table' already has one, the column 'Column7' cannot be added.

We use the following script to create this table:

So LB 3.0.7 seems to use the java.sql.Types.TIMESTAMP also as the datatype TIMESTAMP in the MSSQL database, which is wrong as it should be the datatype DATETIME in MSSQL.

timestamp is a synonym for rowversion - it's automatically generated. datetime isn't - it's just a data type which handles dates and times.

The used scripts work well with LB 2.0.1.

Environment

MSSQL

Status

Reporter

Nathan Voxland

Fix versions

Affects versions

Priority

Major
Configure