Coloquei uma tabela com os tipos de dados C# e SQL Server para quem precisa fazer o mapeamento entre os objetos C# e dados do SQL server.
SQL Server | C# | Máximo | Mínimo | |
BIGINTSqlInt64 | long (Int64)System.Int64 | 9,223,372,036,854,775,807 | −9,223,372,036,854,775,808 | 8 bytes |
INTSqlInt32 | int (Int32)System.Int32 | 2,147,483,647 | -2,147,483,648 | 4 bytes |
SMALLINTSqlInt16 | Short (Int16)System.Int16 | 32,767 | -32,768 | 2 bytes |
TINYINTSqlByte | byteSystem.Byte | 255 | 0 | 1 byte |
BITSqlBoolean | bool (Boolean)System.Boolean | 1 | 0 | 1 byte |
DATETIMESqlDateTime | DateTimeSystem.DateTime | (C#) 31/12/9999 23:59:59(SQL) 31/12/9999 23:59:59 | (C#) 1/1/0001 00:00:00(SQL) 1/1/1753 00:00:00 | 8 bytes |
DATETIME2*System.DateTime | DateTimeSystem.DateTime | 31/12/9999 23:59:59 | 1/1/0001 00:00:00 | |
SMALLDATETIMESqlDateTime | 06/06/2079 23:59:00 | 01/01/1900 00:00:00 | 4 bytes | |
DATE* | 0001-01-01 | 9999-12-31 | ||
TIME(7)* | 23:59:59.9999999 | 00:00:00.0000000 | 5 bytes | |
REALSqlSingle | Float (Single)System.Single | 3.402823E+38 | -3.402823E+38 | 4 bytes |
FLOATSqlDouble | DoubleSystem.Double | (C#) 1.79769313486232E+308(SQL) 1.79E + 308 | (C#) -1.79769313486232E+308(SQL) -1.79E + 308 | 8 bytes4-8 bytes |
DECIMAL / NUMERICSqlDecimal | DecimalSystem.Decimal | (C#) 79228162514264337593543950335(SQL) 10^38–1 | (C#) -79228162514264337593543950335(SQL) -10^38+1 | 16 bytes /5-20 bytes |
MONEYSqlMoney | DecimalSystem.Decimal | 2^63-1 / 10000 | -2^63 / 10000 | 8 bytes |
SMALLMONEYSqlMoney | DecimalSystem.Decimal | +214,748.3647 | -214,748.3648 | 4 bytes |
TEXTSqlString | 2,147,483,647 | 0 | número de chars | |
NTEXTSqlString | 1,073,741,823 | 0 | 2 vezes o número de chars contidos | |
CHARSqlString | 8.000 | 0 | número de chars | |
NCHARSqlString | 4.000 | 0 | 2 vezes o número de chars + 2 bytes | |
VARCHARSqlString | 8.000 | 0 | número de chars contidos | |
NVARCHARSqlString | 4.000 | 0 | 2 vezes o número de chars contidos | |
VARCHAR(MAX)**SqlString | 2147483647 | 0 | número de chars contidos | |
NVARCHAR(MAX)**SqlString | 2147483647 | 0 | 2 vezes o número de chars contidos | |
UNIQUEIDENTIFIERSqlGuid | GuidSystem.Guid |
* Suportado apenas no SQL 2008.
** Suportado apenas no SQL 2008 e 2005.