SQL Server データ型のマッピングSQL 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 の decimal データ型と numeric データ型の最大小数点以下桁数は 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 では、.NET Framework の型を返すアクセサー メソッドと共に、System.Data.SqlTypes のオブジェクトを返す SQL Server 固有の型指定されたアクセサー メソッドを公開しています。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 型と推論、DbTypeSqlDbType列挙型、およびアクセサー メソッドについて、SqlDataReaderします。The following table shows the inferred .NET Framework type, the DbType and SqlDbType enumerations, and the accessor methods for the SqlDataReader.

SQL Server データベース エンジンの型SQL Server Database Engine type .NET Framework 型.NET Framework type SqlDbType 列挙SqlDbType enumeration SqlDataReader SqlTypes の型指定されたアクセサーSqlDataReader SqlTypes typed accessor DbType 列挙DbType enumeration SqlDataReader DbType の型指定されたアクセサーSqlDataReader DbType typed accessor
bigintbigint Int64Int64 BigInt GetSqlInt64 Int64 GetInt64
バイナリbinary Byte[]Byte[] VarBinary GetSqlBinary Binary GetBytes
ビットbit BooleanBoolean Bit GetSqlBoolean Boolean GetBoolean
charchar StringString

Char[]Char[]
Char GetSqlString AnsiStringFixedLengthAnsiStringFixedLength,

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 nonenone DateTimeOffset GetDateTimeOffset
decimaldecimal Decimal (10 進数型)Decimal Decimal GetSqlDecimal Decimal GetDecimal
FILESTREAM 属性 (varbinary(max))FILESTREAM attribute (varbinary(max)) Byte[]Byte[] VarBinary GetSqlBytes Binary GetBytes
floatfloat Double (倍精度浮動小数点型)Double Float GetSqlDouble Double GetDouble
イメージimage Byte[]Byte[] Binary GetSqlBinary Binary GetBytes
intint Int32Int32 Int GetSqlInt32 Int32 GetInt32
moneymoney Decimal (10 進数型)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 (10 進数型)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 (10 進数型)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 nonenone 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 nonenone

1設定することはできません、DbTypeのプロパティをSqlParameterSqlDbType.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 Server のドキュメントSQL Server documentation

SQL Server データ型の詳細については、次を参照してください。データ型 (TRANSACT-SQL)します。For more information about SQL Server data types, see Data types (Transact-SQL).

関連項目See also