적용 대상: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> |
binary |
SqlBytes , SqlBinary |
Byte[] |
bit | SqlBoolean |
Boolean , Nullable<Boolean> |
char | None | None |
cursor | None | None |
date | SqlDateTime |
DateTime , Nullable<DateTime> |
날짜/시간 | SqlDateTime |
DateTime , Nullable<DateTime> |
datetime2 | None |
DateTime , Nullable<DateTime> |
datetimeoffset |
None |
DateTimeOffset , Nullable<DateTimeOffset> |
decimal | SqlDecimal |
Decimal , Nullable<Decimal> |
float | SqlDouble |
Double , Nullable<Double> |
geography |
SqlGeography
1 |
None |
geometry |
SqlGeometry
1 |
None |
hierarchyid |
SqlHierarchyId
1 |
None |
image | None | None |
int | SqlInt32 |
Int32 , Nullable<Int32> |
money | SqlMoney |
Decimal , Nullable<Decimal> |
nchar |
SqlChars , SqlString |
String , Char[] |
ntext | None | None |
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 | None | Byte[] |
smallint | SqlInt16 |
Int16 , Nullable<Int16> |
smallmoney | SqlMoney |
Decimal , Nullable<Decimal> |
sql_variant | None | Object |
table | None | None |
text | None | None |
time | None |
TimeSpan , Nullable<TimeSpan> |
timestamp | None | None |
tinyint | SqlByte |
Byte , Nullable<Byte> |
uniqueidentifier | SqlGuid |
Guid , Nullable<Guid> |
UDT(사용자 정의 형식) | None | 동일한 어셈블리 또는 종속 어셈블리의 사용자 정의 형식에 바인딩된 동일한 클래스입니다. |
varbinary |
SqlBytes , SqlBinary |
Byte[] |
varbinary(1), binary(1) |
SqlBytes , SqlBinary |
byte , Byte[] , Nullable<byte> |
varchar | None | None |
xml | SqlXml |
None |
Microsoft.SqlServer.Types.dll
정의된 1 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)로 표시된 SqlInt32
CLR 데이터 형식의 입력 매개 변수가 있습니다.
-
C#
-
Visual Basic .NET
[Microsoft.SqlServer.Server.SqlProcedure]
public static void PriceSum(out SqlInt32 value)
{ ... }
데이터베이스에서 어셈블리를 빌드하고 만든 후 저장 프로시저는 SQL Server에서 출력 매개 변수로 int의 SQL Server 데이터 형식을 지정하는 다음 Transact-SQL을 사용하여 만들어집니다.
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 데이터 형식