Following the TDS spec, I can`t understand if int
types are signed or not.
For example is tinyint
, having hex value 0xFF
, represents -1
or 255
?
Thanks
MSDN for T-SQL has this table:
Data type Range Storage
bigint -2^63 (-9,223,372,036,854,775,808) to 2^63-1 (9,223,372,036,854,775,807) 8 Bytes
int -2^31 (-2,147,483,648) to 2^31-1 (2,147,483,647) 4 Bytes
smallint -2^15 (-32,768) to 2^15-1 (32,767) 2 Bytes
tinyint 0 to 255 1 Byte
Which implies that tinyint is unsigned, but all other (smallint, int, bigint) are signed.
At least this is how SQL Server interprets types in T-SQL, so you should interpret data in TDS in the same way.