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 |
Środowisko CLR typu danych (SQL Server) |
Środowisko CLR typu danych (systemu .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> |
datetime |
SqlDateTime |
DateTime, Nullable<DateTime> |
datetime2 |
SqlDateTime |
DateTime, Nullable<DateTime> |
DATETIMEOFFSET |
None |
DateTimeOffset, Nullable<DateTimeOffset> |
decimal |
SqlDecimal |
Decimal, Nullable<Decimal> |
float |
SqlDouble |
Double, Nullable<Double> |
geography |
SqlGeography SqlGeography jest zdefiniowany w Microsoft.SqlServer.Types.dll, który jest instalowany z programem SQL Server i można je pobrać z programu SQL Server 2008 pakiet funkcji. |
None |
geometry |
SqlGeometry SqlGeometry jest zdefiniowany w Microsoft.SqlServer.Types.dll, który jest instalowany z programem SQL Server i można je pobrać z programu SQL Server 2008 pakiet funkcji. |
None |
hierarchyid |
SqlHierarchyId SqlHierarchyId jest zdefiniowany w Microsoft.SqlServer.Types.dll, który jest instalowany z programem SQL Server i można je pobrać z programu SQL Server 2008 pakiet funkcji. |
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 lepiej pasuje do przesyłania danych i dostępu, a SQLString jest lepszego dopasowania do wykonywania operacji w ciąg. |
String, Char[] |
nvarchar(1), nchar(1) |
SqlChars, SqlString |
Char, String, Char[], Nullable<char> |
real |
SqlSingle |
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 |
TimeSpan |
TimeSpan, Nullable<TimeSpan> |
timestamp |
None |
None |
tinyint |
SqlByte |
Byte, Nullable<Byte> |
uniqueidentifier |
SqlGuid |
Guid, Nullable<Guid> |
User-defined type(UDT) |
None |
Tej samej klasy, którą jest powiązany Typ zdefiniowany przez użytkownika w ten sam wirtualny plik dziennika lub wirtualny plik dziennika zależnego. |
varbinary |
SqlBytes, SqlBinary |
Byte[] |
varbinary(1), binary(1) |
SqlBytes, SqlBinary |
byte, Byte[], Nullable<byte> |
varchar |
None |
None |
xml |
SqlXml |
None |
Automatyczna konwersja typu danych z mało parametrów
Metoda CLR mogą być zwracane informacje do wywoływania kodu 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 obszar nazw, a program wywołujący określa jego odpowiednika SQL Server Typ danych jako parametr wejściowy konwersja typu zostanie automatycznie kiedy metoda CLR zwraca typ danych.
Na przykład poniższa składowana procedura CLR ma parametr wejściowy SqlInt32 Środowisko CLR typu danych, który jest oznaczony atrybutem 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 utworzyć w bazie danych, procedura przechowywana jest tworzona w SQL Server z następującego języka Transact-SQL, która określa SQL Server Typ danych int jako parametru WYJŚCIOWEGO:
CREATE PROCEDURE PriceSum (@sum int OUTPUT)
AS EXTERNAL NAME TestStoredProc.StoredProcedures.PriceSum
Środowisko CLR przechowywane procedury jest nazywany, SqlInt32 Typ danych jest automatycznie konwertowany na int Typ danych i zwracanie do programu wywołującego.
Nie wszystkie typy danych środowiska CLR może być automatycznie konwertowane na ich odpowiedniki SQL Server typy danych za pomocą parametru wyjściowego, jednak. W poniższej tabela wymieniono te wyjątki.
Środowisko CLR typu danych (SQL Server) |
Typ danych programu SQL Server |
Decimal |
smallmoney |
SqlMoney |
smallmoney |
Decimal |
pieniądze |
DateTime |
Smalldatetime |
SQLDateTime |
Smalldatetime |
Historia zmian
Microsoft Learning |
---|
Dodaje SqlGeography, SqlGeometry, a SqlHierarchyId typy w tabela mapowania. |