Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
van toepassing op:SQL Server-
De volgende tabel bevat SQL Server-gegevenstypen, hun equivalenten in de COMMON Language Runtime (CLR) voor SQL Server in de System.Data.SqlTypes naamruimte en hun systeemeigen CLR-equivalenten in .NET Framework.
| SQL Server-gegevenstype | Typ (in System.Data.SqlTypes of Microsoft.SqlServer.Types) |
CLR-gegevenstype (.NET Framework) |
|---|---|---|
| grote | SqlInt64 |
Int64, Nullable<Int64> |
| binaire |
SqlBytes, SqlBinary |
Byte[] |
| bit | SqlBoolean |
Boolean, Nullable<Boolean> |
| teken | Geen | Geen |
| cursor | Geen | Geen |
| datum | SqlDateTime |
DateTime, Nullable<DateTime> |
| datum/tijd- | SqlDateTime |
DateTime, Nullable<DateTime> |
| datetime2- | Geen |
DateTime, Nullable<DateTime> |
| datetimeoffset | None |
DateTimeOffset, Nullable<DateTimeOffset> |
| decimale | SqlDecimal |
Decimal, Nullable<Decimal> |
| float- | SqlDouble |
Double, Nullable<Double> |
| geografie |
SqlGeography
1 |
Geen |
| geometrie |
SqlGeometry
1 |
Geen |
| hierarchyid- |
SqlHierarchyId
1 |
Geen |
| afbeelding | Geen | Geen |
SqlInt32 |
Int32, Nullable<Int32> |
|
| geld | SqlMoney |
Decimal, Nullable<Decimal> |
SqlChars, SqlString |
String, Char[] |
|
| Geen | Geen | |
| numerieke | SqlDecimal |
Decimal, Nullable<Decimal> |
| nvarchar- |
SqlChars, SqlStringSQLChars is een betere overeenkomst voor gegevensoverdracht en toegang, en SQLString is een betere overeenkomst voor het uitvoeren van String bewerkingen. |
String, Char[] |
| nvarchar(1), nchar(1) |
SqlChars, SqlString |
Char, String, Char[], Nullable<char> |
| echte |
SqlSingle (het bereik van SqlSingle is echter groter dan echte) |
Single, Nullable<Single> |
| rowversion | Geen | Byte[] |
| kleine | SqlInt16 |
Int16, Nullable<Int16> |
| smallmoney | SqlMoney |
Decimal, Nullable<Decimal> |
| sql_variant | Geen | Object |
| tabel | Geen | Geen |
| tekst | Geen | Geen |
| tijd | Geen |
TimeSpan, Nullable<TimeSpan> |
| tijdstempel | Geen | Geen |
| kleine | SqlByte |
Byte, Nullable<Byte> |
| uniqueidentifier- | SqlGuid |
Guid, Nullable<Guid> |
| Door de gebruiker gedefinieerd type (UDT) | Geen | Dezelfde klasse die is gebonden aan het door de gebruiker gedefinieerde type in dezelfde assembly of een afhankelijke assembly. |
| varbinaire |
SqlBytes, SqlBinary |
Byte[] |
| varbinary(1), binary(1) |
SqlBytes, SqlBinary |
byte, Byte[], Nullable<byte> |
| varchar- | Geen | Geen |
| xml-- | SqlXml |
Geen |
1 Gedefinieerd in Microsoft.SqlServer.Types.dll, die is geïnstalleerd met SQL Server en kan worden gedownload uit het sql Server-feature pack.
Automatische conversie van gegevenstypen met uitvoerparameters
Een CLR-methode kan informatie retourneren naar de aanroepende code of het programma door een invoerparameter te markeren met de out modifier (C#) of <Out()> ByRef (Visual Basic .NET). Als de invoerparameter een CLR-gegevenstype is in de System.Data.SqlTypes naamruimte en het aanroepende programma het equivalente SQL Server-gegevenstype opgeeft als invoerparameter, wordt automatisch een typeconversie uitgevoerd wanneer de CLR-methode het gegevenstype retourneert.
De volgende opgeslagen CLR-procedure heeft bijvoorbeeld een invoerparameter van SqlInt32 CLR-gegevenstype dat is gemarkeerd met out (C#) of <Out()> ByRef (Visual Basic):
[Microsoft.SqlServer.Server.SqlProcedure]
public static void PriceSum(out SqlInt32 value)
{ ... }
Nadat de assembly is gemaakt en gemaakt in de database, wordt de opgeslagen procedure gemaakt in SQL Server met de volgende Transact-SQL, waarmee een SQL Server-gegevenstype van int als uitvoerparameter wordt opgegeven:
CREATE PROCEDURE PriceSum
(@sum INT OUTPUT)
AS EXTERNAL NAME TestStoredProc.StoredProcedures.PriceSum;
Wanneer de opgeslagen CLR-procedure wordt aangeroepen, wordt het SqlInt32 gegevenstype automatisch geconverteerd naar een int gegevenstype en geretourneerd naar het aanroepende programma.
Niet alle CLR-gegevenstypen kunnen automatisch worden geconverteerd naar hun equivalente SQL Server-gegevenstypen via een out parameter. De volgende tabel bevat deze uitzonderingen.
| CLR-gegevenstype (SQL Server) | SQL Server-gegevenstype |
|---|---|
Decimal |
smallmoney |
SqlMoney |
smallmoney |
Decimal |
geld |
DateTime |
smalldatetime- |
SQLDateTime |
smalldatetime- |