CLR パラメーター データのマップ
適用対象:SQL Server
次の表に、SQL Server のデータ型、System.Data.SqlTypes
名前空間の SQL Server の共通言語ランタイム (CLR) での同等のデータ型、および .NET Framework のネイティブ CLR データ型を示します。
SQL Server データ型 | 型 (System.Data.SqlTypes または Microsoft.SqlServer.Types ) |
CLR データ型 (.NET Framework) |
---|---|---|
bigint | SqlInt64 |
Int64 、Nullable<Int64> |
[バイナリ] |
SqlBytes 、SqlBinary |
Byte[] |
bit | SqlBoolean |
Boolean 、Nullable<Boolean> |
char | なし | なし |
cursor | なし | なし |
date | SqlDateTime |
DateTime 、Nullable<DateTime> |
datetime | SqlDateTime |
DateTime 、Nullable<DateTime> |
datetime2 | なし |
DateTime 、Nullable<DateTime> |
datetimeoffset を |
None |
DateTimeOffset 、Nullable<DateTimeOffset> |
decimal | SqlDecimal |
Decimal 、Nullable<Decimal> |
float | SqlDouble |
Double 、Nullable<Double> |
geography |
SqlGeography
1 |
なし |
geometry |
SqlGeometry
1 |
なし |
hierarchyid |
SqlHierarchyId
1 |
なし |
image | なし | なし |
int | SqlInt32 |
Int32 、Nullable<Int32> |
money | SqlMoney |
Decimal 、Nullable<Decimal> |
nchar |
SqlChars 、SqlString |
String 、Char[] |
ntext | なし | なし |
numeric | SqlDecimal |
Decimal 、Nullable<Decimal> |
nvarchar |
SqlChars 、SqlString SQLChars はデータ転送とアクセスに適しており、SQLString は String 操作の実行に適しています。 |
String 、Char[] |
nvarchar(1), nchar(1) |
SqlChars 、SqlString |
Char 、 String 、 Char[] 、 Nullable<char> |
real |
Single 、Nullable<Single> |
|
rowversion | なし | Byte[] |
smallint | SqlInt16 |
Int16 、Nullable<Int16> |
smallmoney | SqlMoney |
Decimal 、Nullable<Decimal> |
sql_variant | なし | Object |
テーブル | なし | なし |
text | なし | なし |
time | なし |
TimeSpan 、Nullable<TimeSpan> |
timestamp | なし | なし |
tinyint | SqlByte |
Byte 、Nullable<Byte> |
uniqueidentifier | SqlGuid |
Guid 、Nullable<Guid> |
ユーザー定義型 (UDT) | なし | 同じアセンブリまたは依存アセンブリ内のユーザー定義型にバインドされている同じクラス |
varbinary |
SqlBytes 、SqlBinary |
Byte[] |
varbinary(1), binary(1) |
SqlBytes 、SqlBinary |
byte 、Byte[] 、Nullable<byte> |
varchar | なし | なし |
xml | SqlXml |
なし |
1Microsoft.SqlServer.Types.dll
で定義されています。これは SQL Server と共にインストールされ、SQL Server 機能パックからダウンロードできます。
出力パラメーターを使用したデータ型の自動変換
CLR メソッドは、入力パラメーターを out
修飾子 (C#) または <Out()> ByRef
(Visual Basic .NET) でマークすることで、呼び出し元のコードまたはプログラムに情報を返すことができます。 入力パラメーターが System.Data.SqlTypes
名前空間の CLR データ型であり、呼び出し元のプログラムで、同等の SQL Server データ型が入力パラメーターとして指定されている場合、CLR メソッドがデータ型を返すと、型変換が自動的に行われます。
たとえば、次の CLR ストアド プロシージャには、out
(C#) または <Out()> ByRef
(Visual Basic) でマークされている CLR データ型 SqlInt32
入力パラメーターがあります。
-
C# を
する -
Visual Basic .NET の
[Microsoft.SqlServer.Server.SqlProcedure]
public static void PriceSum(out SqlInt32 value)
{ ... }
アセンブリがデータベースにビルドされて作成されると、ストアド プロシージャは次の Transact-SQL を使用して SQL Server に作成されます。このストアド プロシージャは、
CREATE PROCEDURE PriceSum
(@sum INT OUTPUT)
AS EXTERNAL NAME TestStoredProc.StoredProcedures.PriceSum;
CLR ストアド プロシージャが呼び出されると、SqlInt32
データ型は自動的に int データ型に変換され、呼び出し元のプログラムに返されます。
ただし、すべての CLR データ型を、out
パラメーターを使用して同等の SQL Server データ型に自動的に変換できるわけではありません。 次の表に、これらの例外を示します。
CLR データ型 (SQL Server) | SQL Server データ型 |
---|---|
Decimal |
smallmoney |
SqlMoney |
smallmoney |
Decimal |
money |
DateTime |
smalldatetime を |
SQLDateTime |
smalldatetime を |
関連コンテンツ
- .NET Framework での SQL Server データ型の