Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:SQL Server
In der folgenden Tabelle sind SQL Server-Datentypen, ihre Entsprechungen in der Common Language Runtime (CLR) für SQL Server im System.Data.SqlTypes
-Namespace und deren native CLR-Entsprechungen im .NET Framework aufgeführt.
SQL Server-Datentyp | Typ (in System.Data.SqlTypes oder Microsoft.SqlServer.Types ) |
CLR-Datentyp (.NET Framework) |
---|---|---|
bigint | SqlInt64 |
Int64 , Nullable<Int64> |
binary |
SqlBytes , SqlBinary |
Byte[] |
bit | SqlBoolean |
Boolean , Nullable<Boolean> |
char | Keine | Keine |
Cursor | Keine | Keine |
date | SqlDateTime |
DateTime , Nullable<DateTime> |
datetime | SqlDateTime |
DateTime , Nullable<DateTime> |
datetime2 | Keine |
DateTime , Nullable<DateTime> |
datetimeoffset- | None |
DateTimeOffset , Nullable<DateTimeOffset> |
decimal | SqlDecimal |
Decimal , Nullable<Decimal> |
float | SqlDouble |
Double , Nullable<Double> |
geography |
SqlGeography
1 |
Keine |
geometry |
SqlGeometry
1 |
Keine |
hierarchyid |
SqlHierarchyId
1 |
Keine |
Abbildung | Keine | Keine |
int | SqlInt32 |
Int32 , Nullable<Int32> |
money | SqlMoney |
Decimal , Nullable<Decimal> |
nchar |
SqlChars , SqlString |
String , Char[] |
ntext | Keine | Keine |
numeric | SqlDecimal |
Decimal , Nullable<Decimal> |
nvarchar |
SqlChars , SqlString SQLChars ist eine bessere Übereinstimmung für die Datenübertragung und den Zugriff, und SQLString ist eine bessere Übereinstimmung für die Ausführung von String Vorgängen. |
String , Char[] |
nvarchar(1), nchar(1) |
SqlChars , SqlString |
Char , String , Char[] , Nullable<char> |
real |
SqlSingle (der Bereich der SqlSingle ist jedoch größer als reale) |
Single , Nullable<Single> |
rowversion | Keine | Byte[] |
smallint | SqlInt16 |
Int16 , Nullable<Int16> |
smallmoney | SqlMoney |
Decimal , Nullable<Decimal> |
sql_variant | Keine | Object |
Tabelle | Keine | Keine |
text | Keine | Keine |
time | Keine |
TimeSpan , Nullable<TimeSpan> |
timestamp | Keine | Keine |
tinyint | SqlByte |
Byte , Nullable<Byte> |
uniqueidentifier | SqlGuid |
Guid , Nullable<Guid> |
Benutzerdefinierter Typ (UDT) | Keine | Dieselbe Klasse, die in derselben Assembly oder einer abhängigen Assembly an den benutzerdefinierten Typ gebunden ist. |
varbinary |
SqlBytes , SqlBinary |
Byte[] |
varbinary(1), binary(1) |
SqlBytes , SqlBinary |
byte , Byte[] , Nullable<byte> |
varchar | Keine | Keine |
xml | SqlXml |
Keine |
1 Definiert in Microsoft.SqlServer.Types.dll
, das mit SQL Server installiert ist und aus dem SQL Server Feature Packheruntergeladen werden kann.
Automatische Datentypkonvertierung mit Ausgabeparametern
Eine CLR-Methode kann Informationen an den aufrufenden Code oder das Programm zurückgeben, indem sie einen Eingabeparameter mit dem out
Modifizierer (C#) oder <Out()> ByRef
(Visual Basic .NET) markieren. Wenn der Eingabeparameter ein CLR-Datentyp im System.Data.SqlTypes
-Namespace ist und das aufrufende Programm den entsprechenden SQL Server-Datentyp als Eingabeparameter angibt, tritt automatisch eine Typkonvertierung auf, wenn die CLR-Methode den Datentyp zurückgibt.
Die folgende gespeicherte CLR-Prozedur verfügt beispielsweise über einen Eingabeparameter SqlInt32
CLR-Datentyps, der mit out
(C#) oder <Out()> ByRef
(Visual Basic) gekennzeichnet ist:
[Microsoft.SqlServer.Server.SqlProcedure]
public static void PriceSum(out SqlInt32 value)
{ ... }
Nachdem die Assembly in der Datenbank erstellt und erstellt wurde, wird die gespeicherte Prozedur in SQL Server mit dem folgenden Transact-SQL-Code erstellt, der einen SQL Server-Datentyp von int als OUTPUT-Parameter angibt:
CREATE PROCEDURE PriceSum
(@sum INT OUTPUT)
AS EXTERNAL NAME TestStoredProc.StoredProcedures.PriceSum;
Wenn die gespeicherte CLR-Prozedur aufgerufen wird, wird der SqlInt32
Datentyp automatisch in einen int Datentyp konvertiert und an das aufrufende Programm zurückgegeben.
Nicht alle CLR-Datentypen können über einen out
Parameter automatisch in ihre entsprechenden SQL Server-Datentypen konvertiert werden. In der folgenden Tabelle werden diese Ausnahmen aufgeführt.
CLR-Datentyp (SQL Server) | SQL Server-Datentyp |
---|---|
Decimal |
smallmoney |
SqlMoney |
smallmoney |
Decimal |
money |
DateTime |
smalldatetime |
SQLDateTime |
smalldatetime |