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.