Сопоставления типов данных SQL ServerSQL Server Data Type Mappings

В SQL Server и .NET Framework используются различные системы типов.SQL Server and the .NET Framework are based on different type systems. Например, максимальная разрядность структуры .NET Framework Decimal составляет 28, в то время как максимальная разрядность десятичных и числовых типов данных SQL Server - 38.For example, the .NET Framework Decimal structure has a maximum scale of 28, whereas the SQL Server decimal and numeric data types have a maximum scale of 38. Чтобы обеспечить целостность данных при чтении и записи, объект SqlDataReader предоставляет характерные для SQL Server типизированные методы доступа, возвращающие объекты System.Data.SqlTypes, а также методы доступа, возвращающие типы .NET Framework.To maintain data integrity when reading and writing data, the SqlDataReader exposes SQL Server–specific typed accessor methods that return objects of System.Data.SqlTypes as well as accessor methods that return .NET Framework types. Типы данных SQL Server и .NET Framework также представлены перечислениями в классах DbType и SqlDbType, которые можно использовать при указании типов данных SqlParameter.Both SQL Server types and .NET Framework types are also represented by enumerations in the DbType and SqlDbType classes, which you can use when specifying SqlParameter data types.

В следующей таблице показаны выводимые типы .NET Framework, DbType и SqlDbType перечисления и методы доступа для SqlDataReader.The following table shows the inferred .NET Framework type, the DbType and SqlDbType enumerations, and the accessor methods for the SqlDataReader.

Тип ядра СУБД SQL ServerSQL Server Database Engine type Тип платформы .NET Framework.NET Framework type Перечисление SqlDbTypeSqlDbType enumeration Типизированный метод доступа SqlDataReader SqlTypesSqlDataReader SqlTypes typed accessor Перечисление DbTypeDbType enumeration Типизированный метод доступа SqlDataReader DbTypeSqlDataReader DbType typed accessor
bigintbigint Int64Int64 BigInt GetSqlInt64 Int64 GetInt64
binarybinary Byte[]Byte[] VarBinary GetSqlBinary Binary GetBytes
bitbit BooleanBoolean Bit GetSqlBoolean Boolean GetBoolean
charchar StringString

Char[]Char[]
Char GetSqlString AnsiStringFixedLength,AnsiStringFixedLength,

String
GetString

GetChars
Дата 1date 1

(SQL Server 2008 и более поздние версии)(SQL Server 2008 and later)
DateTimeDateTime Date 1Date 1 GetSqlDateTime Date 1Date 1 GetDateTime
datetimedatetime DateTimeDateTime DateTime GetSqlDateTime DateTime GetDateTime
datetime2datetime2

(SQL Server 2008 и более поздние версии)(SQL Server 2008 and later)
DateTimeDateTime DateTime2 НетNone DateTime2 GetDateTime
datetimeoffsetdatetimeoffset

(SQL Server 2008 и более поздние версии)(SQL Server 2008 and later)
DateTimeOffsetDateTimeOffset DateTimeOffset Нетnone DateTimeOffset GetDateTimeOffset
decimaldecimal Десятичное числоDecimal Decimal GetSqlDecimal Decimal GetDecimal
FILESTREAM attribute (varbinary(max))FILESTREAM attribute (varbinary(max)) Byte[]Byte[] VarBinary GetSqlBytes Binary GetBytes
floatfloat DoubleDouble Float GetSqlDouble Double GetDouble
imageimage Byte[]Byte[] Binary GetSqlBinary Binary GetBytes
intint Int32Int32 Int GetSqlInt32 Int32 GetInt32
moneymoney Десятичное числоDecimal Money GetSqlMoney Decimal GetDecimal
ncharnchar StringString

Char[]Char[]
NChar GetSqlString StringFixedLength GetString

GetChars
ntextntext StringString

Char[]Char[]
NText GetSqlString String GetString

GetChars
числовойnumeric Десятичное числоDecimal Decimal GetSqlDecimal Decimal GetDecimal
nvarcharnvarchar StringString

Char[]Char[]
NVarChar GetSqlString String GetString

GetChars
действительныеreal SingleSingle Real GetSqlSingle Single GetFloat
rowversionrowversion Byte[]Byte[] Timestamp GetSqlBinary Binary GetBytes
smalldatetimesmalldatetime DatetimeDateTime DateTime GetSqlDateTime DateTime GetDateTime
smallintsmallint Int16Int16 SmallInt GetSqlInt16 Int16 GetInt16
smallmoneysmallmoney Десятичное числоDecimal SmallMoney GetSqlMoney Decimal GetDecimal
sql_variantsql_variant Объект 2Object 2 Variant GetSqlValue 2GetSqlValue 2 Object GetValue 2GetValue 2
текстtext StringString

Char[]Char[]
Text GetSqlString String GetString

GetChars
времяtime

(SQL Server 2008 и более поздние версии)(SQL Server 2008 and later)
TimeSpanTimeSpan Time Нетnone Time GetDateTime
отметка времениtimestamp Byte[]Byte[] Timestamp GetSqlBinary Binary GetBytes
tinyinttinyint ByteByte TinyInt GetSqlByte Byte GetByte
uniqueidentifieruniqueidentifier GuidGuid UniqueIdentifier GetSqlGuid Guid GetGuid
varbinaryvarbinary Byte[]Byte[] VarBinary GetSqlBinary Binary GetBytes
varcharvarchar StringString

Char[]Char[]
VarChar GetSqlString AnsiString, StringAnsiString, String GetString

GetChars
xmlxml XmlXml Xml GetSqlXml Xml Нетnone

1 нельзя задать DbType свойство SqlParameter для SqlDbType.Date.1 You cannot set the DbType property of a SqlParameter to SqlDbType.Date.
2 используйте конкретный типизированный метод доступа, если известен базовый тип sql_variant.2 Use a specific typed accessor if you know the underlying type of the sql_variant.

Документация по SQL ServerSQL Server documentation

Дополнительные сведения о типах данных SQL Server см. в разделе типы данных (Transact-SQL).For more information about SQL Server data types, see Data types (Transact-SQL).

См. такжеSee also