Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för:SQL Server
I följande tabell visas SQL Server-datatyper, deras motsvarigheter i CLR (Common Language Runtime) för SQL Server i System.Data.SqlTypes-namnområdet och deras interna CLR-motsvarigheter i .NET Framework.
| SQL Server-datatyp | Skriv (i System.Data.SqlTypes eller Microsoft.SqlServer.Types) |
CLR-datatyp (.NET Framework) |
|---|---|---|
| bigint | SqlInt64 |
Int64, Nullable<Int64> |
| binär |
SqlBytes, SqlBinary |
Byte[] |
| bit | SqlBoolean |
Boolean, Nullable<Boolean> |
| tecken | Ingen | Ingen |
| markören | Ingen | Ingen |
| datum | SqlDateTime |
DateTime, Nullable<DateTime> |
| datetime | SqlDateTime |
DateTime, Nullable<DateTime> |
| datetime2 | Ingen |
DateTime, Nullable<DateTime> |
| datetimeoffset | None |
DateTimeOffset, Nullable<DateTimeOffset> |
| decimal | SqlDecimal |
Decimal, Nullable<Decimal> |
| flyttal | SqlDouble |
Double, Nullable<Double> |
| geografi |
SqlGeography
1 |
Ingen |
| geometri |
SqlGeometry
1 |
Ingen |
| hierarchyid |
SqlHierarchyId
1 |
Ingen |
| bild | Ingen | Ingen |
| int | SqlInt32 |
Int32, Nullable<Int32> |
| pengar | SqlMoney |
Decimal, Nullable<Decimal> |
| nchar |
SqlChars, SqlString |
String, Char[] |
| ntext | Ingen | Ingen |
| numeriska | SqlDecimal |
Decimal, Nullable<Decimal> |
| nvarchar |
SqlChars, SqlStringSQLChars är en bättre matchning för dataöverföring och åtkomst, och SQLString är en bättre matchning för att utföra String åtgärder. |
String, Char[] |
| nvarchar(1), nchar(1) |
SqlChars, SqlString |
Char, String, Char[], Nullable<char> |
| riktiga |
SqlSingle (men intervallet för SqlSingle är större än verkliga) |
Single, Nullable<Single> |
| rowversion | Ingen | Byte[] |
| liten | SqlInt16 |
Int16, Nullable<Int16> |
| smallmoney | SqlMoney |
Decimal, Nullable<Decimal> |
| sql_variant | Ingen | Object |
| tabell | Ingen | Ingen |
| text | Ingen | Ingen |
| tid | Ingen |
TimeSpan, Nullable<TimeSpan> |
| tidsstämpel | Ingen | Ingen |
| pytteliten | SqlByte |
Byte, Nullable<Byte> |
| unikidentifierare | SqlGuid |
Guid, Nullable<Guid> |
| Användardefinierad typ (UDT) | Ingen | Samma klass som är bunden till den användardefinierade typen i samma sammansättning eller en beroende sammansättning. |
| varbinary |
SqlBytes, SqlBinary |
Byte[] |
| varbinary(1), binary(1) |
SqlBytes, SqlBinary |
byte, Byte[], Nullable<byte> |
| varchar | Ingen | Ingen |
| XML- | SqlXml |
Ingen |
1 Definieras i Microsoft.SqlServer.Types.dll, som installeras med SQL Server och kan laddas ned från SQL Server funktionspaketet.
Automatisk datatypkonvertering med utdataparametrar
En CLR-metod kan returnera information till anropande kod eller program genom att markera en indataparameter med out-modifieraren (C#) eller <Out()> ByRef (Visual Basic .NET). Om indataparametern är en CLR-datatyp i System.Data.SqlTypes namnområde och det anropande programmet anger motsvarande SQL Server-datatyp som indataparameter, sker en typkonvertering automatiskt när CLR-metoden returnerar datatypen.
Följande CLR-lagrade procedur har till exempel en indataparameter av SqlInt32 CLR-datatyp som är markerad med out (C#) eller <Out()> ByRef (Visual Basic):
[Microsoft.SqlServer.Server.SqlProcedure]
public static void PriceSum(out SqlInt32 value)
{ ... }
När sammansättningen har skapats och skapats i databasen skapas den lagrade proceduren i SQL Server med följande Transact-SQL, som anger en SQL Server-datatyp av int som en OUTPUT-parameter:
CREATE PROCEDURE PriceSum
(@sum INT OUTPUT)
AS EXTERNAL NAME TestStoredProc.StoredProcedures.PriceSum;
När den lagrade CLR-proceduren anropas konverteras SqlInt32 datatyp automatiskt till en int datatyp och returneras till anropande program.
Alla CLR-datatyper kan dock inte automatiskt konverteras till motsvarande SQL Server-datatyper via en out parameter. I följande tabell visas dessa undantag.
| CLR-datatyp (SQL Server) | SQL Server-datatyp |
|---|---|
Decimal |
smallmoney |
SqlMoney |
smallmoney |
Decimal |
pengar |
DateTime |
smalldatetime |
SQLDateTime |
smalldatetime |