Сопоставление данных параметров CLR
Область применения:SQL Server
В следующей таблице перечислены типы данных SQL Server, их эквиваленты в среде CLR для SQL Server в пространстве имен System.Data.SqlTypes
и их собственные эквиваленты CLR в .NET Framework.
Тип данных 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 | нет | нет |
курсор | нет | нет |
date | SqlDateTime |
DateTime , Nullable<DateTime> |
datetime | SqlDateTime |
DateTime , Nullable<DateTime> |
datetime2 | нет |
DateTime , Nullable<DateTime> |
datetimeoffset | None |
DateTimeOffset , Nullable<DateTimeOffset> |
десятичное | SqlDecimal |
Decimal , Nullable<Decimal> |
float | SqlDouble |
Double , Nullable<Double> |
geography |
SqlGeography
1 |
нет |
geometry |
SqlGeometry
1 |
нет |
hierarchyid |
SqlHierarchyId
1 |
нет |
Изображение | нет | нет |
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 |
SqlSingle (однако диапазон SqlSingle больше реальных) |
Single , Nullable<Single> |
rowversion | нет | Byte[] |
smallint | SqlInt16 |
Int16 , Nullable<Int16> |
smallmoney | SqlMoney |
Decimal , Nullable<Decimal> |
sql_variant | нет | Object |
table | нет | нет |
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 |
нет |
1, определенных в Microsoft.SqlServer.Types.dll
, которая установлена с SQL Server и может быть загружена из пакета дополнительных компонентов SQL Server .
Автоматическое преобразование типов данных с выходными параметрами
Метод CLR может возвращать сведения в вызывающий код или программу, помечая входной параметр с помощью модификатора out
(C#) или <Out()> ByRef
(Visual Basic .NET). Если входной параметр является типом данных CLR в пространстве имен System.Data.SqlTypes
, а вызывающая программа задает эквивалентный тип данных SQL Server в качестве входного параметра, преобразование типа происходит автоматически, когда метод CLR возвращает тип данных.
Например, следующая хранимая процедура CLR имеет входной параметр типа данных CLR SqlInt32
, помеченного out
(C#) или <Out()> ByRef
(Visual Basic):
[Microsoft.SqlServer.Server.SqlProcedure]
public static void PriceSum(out SqlInt32 value)
{ ... }
После создания и создания сборки в базе данных хранимая процедура создается в SQL Server со следующим типом данных Transact-SQL, который указывает тип данных SQL Server int в качестве параметра OUTPUT:
CREATE PROCEDURE PriceSum
(@sum INT OUTPUT)
AS EXTERNAL NAME TestStoredProc.StoredProcedures.PriceSum;
При вызове хранимой процедуры CLR тип данных SqlInt32
автоматически преобразуется в тип данных int и возвращается в вызывающую программу.
Однако не все типы данных CLR можно автоматически преобразовать в эквивалентные типы данных SQL Server с помощью параметра out
. В следующей таблице перечислены эти исключения.
Тип данных CLR (SQL Server) | Тип данных SQL Server |
---|---|
Decimal |
smallmoney |
SqlMoney |
smallmoney |
Decimal |
money |
DateTime |
smalldatetime |
SQLDateTime |
smalldatetime |
Связанное содержимое
- типы данных SQL Server в .NET Framework