Mapowanie danych parametru CLR
The following table lists Microsoft SQL Server data types, their equivalents in the common language runtime (CLR) for SQL Server in the System.Data.SqlTypes namespace, and their native CLR equivalents in the Microsoft .NET Framework.
Typ danych programu SQL Server |
Typ (w System.Data.SqlTypes lub Microsoft.SqlServer.Types) |
Typ CLR danych (.NET Framework) |
bigint |
SqlInt64 |
Int64, Nullable<Int64> |
binary |
SqlBytes, SqlBinary |
Byte[] |
bit |
SqlBoolean |
Boolean, Nullable<Boolean> |
char |
Brak |
Brak |
cursor |
Brak |
Brak |
date |
SqlDateTime |
DateTime, Nullable<DateTime> |
datetime |
SqlDateTime |
DateTime, Nullable<DateTime> |
datetime2 |
Brak |
DateTime, Nullable<DateTime> |
DATETIMEOFFSET |
None |
DateTimeOffset, Nullable<DateTimeOffset> |
decimal |
SqlDecimal |
Decimal, Nullable<Decimal> |
float |
SqlDouble |
Double, Nullable<Double> |
geography |
SqlGeography SqlGeographyjest zdefiniowany w Microsoft.SqlServer.Types.dll, który jest instalowany z programem SQL Server i SQL Server 2008 można pobrać feature pack. |
Brak |
geometry |
SqlGeometry SqlGeometryjest zdefiniowany w Microsoft.SqlServer.Types.dll, który jest instalowany z programem SQL Server i SQL Server 2008 można pobrać feature pack. |
Brak |
hierarchyid |
SqlHierarchyId SqlHierarchyIdjest zdefiniowany w Microsoft.SqlServer.Types.dll, który jest instalowany z programem SQL Server i SQL Server 2008 można pobrać feature pack. |
Brak |
image |
Brak |
Brak |
int |
SqlInt32 |
Int32, Nullable<Int32> |
money |
SqlMoney |
Decimal, Nullable<Decimal> |
nchar |
SqlChars, SqlString |
String, Char[] |
ntext |
Brak |
Brak |
numeric |
SqlDecimal |
Decimal, Nullable<Decimal> |
nvarchar |
SqlChars, SqlString SQLCharsjest lepsze dopasowanie dla transferu danych i dostęp, i SQLString jest lepsze dopasowanie do wykonywania operacji ciąg. |
String, Char[] |
nvarchar(1), nchar(1) |
SqlChars, SqlString |
Char, String, Char[], Nullable<char> |
real |
SqlSingle |
Single, Nullable<Single> |
rowversion |
Brak |
Byte[] |
smallint |
SqlInt16 |
Int16, Nullable<Int16> |
smallmoney |
SqlMoney |
Decimal, Nullable<Decimal> |
sql_variant |
Brak |
Object |
table |
Brak |
Brak |
text |
Brak |
Brak |
time |
Brak |
TimeSpan, Nullable<TimeSpan> |
timestamp |
Brak |
Brak |
tinyint |
SqlByte |
Byte, Nullable<Byte> |
uniqueidentifier |
SqlGuid |
Guid, Nullable<Guid> |
User-defined type(UDT) |
Brak |
Tej samej klasy, którą jest powiązany Typ zdefiniowany przez użytkownika w tym samym zestawie lub wirtualny plik dziennika zależnego. |
varbinary |
SqlBytes, SqlBinary |
Byte[] |
varbinary(1), binary(1) |
SqlBytes, SqlBinary |
byte, Byte[], Nullable<byte> |
varchar |
Brak |
Brak |
xml |
SqlXml |
Brak |
Automatyczna konwersja typu danych z parametry wyjściowe
Metoda CLR zwraca informacje do kodu wywołującego lub programu przez oznaczenie parametru wejściowego z out Modyfikator (Microsoft Visual C#) lub <Out()> ByRef (Microsoft Visual Basic), jeśli parametr wejściowy jest typu CLR w System.Data.SqlTypes obszaru nazw, a program wywołujący określa jego odpowiednik typ danychSQL Server jako parametr wejściowy, konwersja typu zostanie automatycznie, gdy metoda CLR zwraca typ danych.
Na przykład, następujący procedura składowana CLR ma parametr wejściowy SqlInt32 typu CLR, oznaczony out (C#) lub <Out()> ByRef (Visual Basic):
[Microsoft.SqlServer.Server.SqlProcedure]
public static void PriceSum(out SqlInt32 value)
{ … }
<Microsoft.SqlServer.Server.SqlProcedure> _
Public Shared Sub PriceSum( <Out()> ByRef value As SqlInt32)
…
End Sub
Po wirtualny plik dziennika jest wbudowana i utworzone w bazie danych, procedura składowana jest tworzona w SQL Server z następującego języka Transact-SQL, która określa SQL Server typu danych int jako parametr wyjściowy:
CREATE PROCEDURE PriceSum (@sum int OUTPUT)
AS EXTERNAL NAME TestStoredProc.StoredProcedures.PriceSum
Gdy procedura składowana CLR jest nazywany SqlInt32 Typ danych jest automatycznie konwertowany na int Typ danych i zwrócone do programu wywołującego.
Nie wszystkie typy danych CLR może automatycznie konwertowane na ich odpowiedniki SQL Server danych typów za pomocą parametru wyjściowego.W poniższej tabela przedstawiono te wyjątki.
Typ CLR danych (SQL Server) |
Typ danych programu SQL Server |
Decimal |
Smallmoney |
SqlMoney |
Smallmoney |
Decimal |
pieniądze |
DateTime |
smalldatetime |
SQLDateTime |
smalldatetime |