Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a:SQL Server
La tabella seguente elenca i tipi di dati di SQL Server, i relativi equivalenti in Common Language Runtime (CLR) per SQL Server nello spazio dei nomi System.Data.SqlTypes
e i relativi equivalenti CLR nativi in .NET Framework.
Tipo di dati di SQL Server | Tipo (in System.Data.SqlTypes o Microsoft.SqlServer.Types ) |
Tipo di dati CLR (.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 | None |
DateTime , Nullable<DateTime> |
datetimeoffset | None |
DateTimeOffset , Nullable<DateTimeOffset> |
decimal | SqlDecimal |
Decimal , Nullable<Decimal> |
float | SqlDouble |
Double , Nullable<Double> |
geography |
SqlGeography
1 |
None |
geometry |
SqlGeometry
1 |
None |
hierarchyid |
SqlHierarchyId
1 |
None |
Immagine | 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 è una corrispondenza migliore per il trasferimento e l'accesso ai dati e SQLString è una corrispondenza migliore per l'esecuzione di operazioni String . |
String , Char[] |
nvarchar(1), nchar(1) |
SqlChars , SqlString |
Char , String , Char[] , Nullable<char> |
real |
SqlSingle (tuttavia, l'intervallo di SqlSingle è maggiore di reale) |
Single , Nullable<Single> |
rowversion | None | Byte[] |
smallint | SqlInt16 |
Int16 , Nullable<Int16> |
smallmoney | SqlMoney |
Decimal , Nullable<Decimal> |
sql_variant | None | Object |
table | None | None |
Testo | None | None |
time | None |
TimeSpan , Nullable<TimeSpan> |
timestamp | None | None |
tinyint | SqlByte |
Byte , Nullable<Byte> |
uniqueidentifier | SqlGuid |
Guid , Nullable<Guid> |
Tipo definito dall'utente (UDT) | None | La stessa classe associata al tipo definito dall'utente (UDT) nello stesso assembly o un assembly dipendente. |
varbinary |
SqlBytes , SqlBinary |
Byte[] |
varbinary(1), binary(1) |
SqlBytes , SqlBinary |
byte , Byte[] , Nullable<byte> |
varchar | None | None |
xml | SqlXml |
None |
1 Definito in Microsoft.SqlServer.Types.dll
, installato con SQL Server e può essere scaricato dal Feature Pack di SQL Server .
Conversione automatica dei tipi di dati con parametri di output
Un metodo CLR può restituire informazioni al codice o al programma chiamante contrassegnando un parametro di input con il modificatore out
(C#) o <Out()> ByRef
(Visual Basic .NET). Se il parametro di input è un tipo di dati CLR nello spazio dei nomi System.Data.SqlTypes
e il programma chiamante specifica il tipo di dati SQL Server equivalente come parametro di input, una conversione del tipo viene eseguita automaticamente quando il metodo CLR restituisce il tipo di dati.
Ad esempio, la stored procedure CLR seguente ha un parametro di input di SqlInt32
tipo di dati CLR contrassegnato con out
(C#) o <Out()> ByRef
(Visual Basic):
[Microsoft.SqlServer.Server.SqlProcedure]
public static void PriceSum(out SqlInt32 value)
{ ... }
Dopo aver compilato e creato l'assembly nel database, la stored procedure viene creata in SQL Server con il codice Transact-SQL seguente, che specifica un tipo di dati di SQL Server int come parametro OUTPUT:
CREATE PROCEDURE PriceSum
(@sum INT OUTPUT)
AS EXTERNAL NAME TestStoredProc.StoredProcedures.PriceSum;
Quando viene chiamata la stored procedure CLR, il tipo di dati SqlInt32
viene convertito automaticamente in un int tipo di dati e restituito al programma chiamante.
Non tutti i tipi di dati CLR possono essere convertiti automaticamente nei tipi di dati di SQL Server equivalenti tramite un parametro out
. Nella seguente tabella vengono descritte queste eccezioni.
Tipo di dati CLR (SQL Server) | Tipo di dati di SQL Server |
---|---|
Decimal |
smallmoney |
SqlMoney |
smallmoney |
Decimal |
money |
DateTime |
smalldatetime |
SQLDateTime |
smalldatetime |