TEXT, CLOB, CHAR, VARCHAR |
SQLite does not enforce declared string lengths; SQL Server does. Check stored values against the proposed width. |
TEXT and CLOB become NVARCHAR(MAX). CHAR / VARCHAR / NVARCHAR become NVARCHAR(n): 50 when no length is declared, or MAX when the declared length exceeds 4,000. |
DECIMAL, NUMERIC, integer and floating-point types |
The target range, precision, and scale must fit the stored values. A decimal declaration in SQLite does not guarantee exact decimal storage. |
DECIMAL / NUMERIC become NUMERIC(p,s), with precision 18 when unspecified and the source scale retained. INT / INTEGER / BIGINT become BIGINT; DOUBLE / DOUBLE PRECISION become FLOAT. |
A TEXT primary key without a length |
SQL Server cannot index NVARCHAR(MAX). A composite key also has a combined byte limit across all its columns. |
Bounds the column to NVARCHAR(450) and reports the choice. Longer values are refused. This per-column limit does not guarantee that a composite key fits; review the complete key width. |
| Date/time and boolean declarations |
Check date formats, range, fractional seconds, and boolean values. Dates stored in generic text or integer columns are not inferred from their contents. |
DATE / TIME / DATETIME / TIMESTAMP become DATETIME; BOOLEAN / BOOL / BIT become BIT. Override the target type, for example to DATETIME2, when the source values are compatible. |