INT, BIGINT, identity keys |
INT and BIGINT retain their type names. |
Check generated-key settings and the next value before inserts resume. Do not assume SQL Server seed and increment behavior transfers unchanged. |
DECIMAL, NUMERIC, MONEY |
DOUBLE PRECISION by default, including SMALLMONEY. |
Floating-point storage can round exact amounts. Override the mapping to a suitable fixed-point declaration when exact decimal arithmetic is required; check the target version's capacity. |
NVARCHAR, long text, XML |
Bounded NVARCHAR becomes VARCHAR. VARCHAR(MAX), NVARCHAR(MAX), TEXT, NTEXT, and XML become BLOB SUB_TYPE TEXT. |
The current text-BLOB writer encodes values as UTF-8. Use a UTF8 target connection; test lookup and sorting behavior separately. |
DATETIMEOFFSET |
TIMESTAMP, not TIMESTAMP WITH TIME ZONE, even on Firebird 4 or 5. |
The source offset is not retained. If the application needs it, store it separately or choose another representation before loading. |
DATETIME2, DATE, TIME, BIT |
TIMESTAMP, DATE, TIME, and SMALLINT, respectively. |
Firebird timestamps have four fractional-second digits; SQL Server DATETIME2(7) has seven. Check reduced timestamp precision and how the application reads SMALLINT boolean values. |
VARBINARY, IMAGE, UNIQUEIDENTIFIER |
Binary values become BLOB SUB_TYPE 0; GUIDs become CHAR(38). |
Check binary payloads and the GUID format expected by the Firebird application. |