Memetakan Data Parameter CLR
Berlaku untuk: SQL Server
Tabel berikut mencantumkan jenis data Microsoft SQL Server, yang setara dalam runtime bahasa umum (CLR) untuk SQL Server di namespace System.Data.SqlTypes , dan setara CLR aslinya dalam Microsoft .NET Framework.
Jenis data SQL Server | Jenis (di System.Data.SqlTypes atau Microsoft.SqlServer.Type) | Jenis data CLR (.NET Framework) |
---|---|---|
bigint | SqlInt64 | Int64, Nullable<Int64> |
biner | SqlBytes, SqlBinary | Byte[] |
bit | SqlBoolean | Boolean, Boolean Nullable<> |
Char | Tidak | Tidak |
Kursor | Tidak | Tidak |
date | SqlDateTime | DateTime, DateTime Nullable<> |
datetime | SqlDateTime | DateTime, DateTime Nullable<> |
datetime2 | Tidak | DateTime, DateTime Nullable<> |
DATETIMEOFFSET | Tidak | DateTimeOffset, DateTimeOffset Nullable<> |
desimal | SqlDecimal | Desimal, Desimal Nullable<> |
float | SqlDouble | Ganda, Ganda Nullable<> |
geografi | SqlGeography SqlGeography didefinisikan dalam Microsoft.SqlServer.Types.dll, yang diinstal dengan SQL Server dan dapat diunduh dari paket fitur SQL Server. |
Tidak |
geometri | SqlGeometry SqlGeometry didefinisikan dalam Microsoft.SqlServer.Types.dll, yang diinstal dengan SQL Server dan dapat diunduh dari paket fitur SQL Server. |
Tidak |
hierarchyid | SqlHierarchyId SqlHierarchyId didefinisikan dalam Microsoft.SqlServer.Types.dll, yang diinstal dengan SQL Server dan dapat diunduh dari paket fitur SQL Server. |
Tidak |
gambar | Tidak | Tidak |
int | SqlInt32 | Int32, Nullable<Int32> |
uang | SqlMoney | Desimal, Desimal Nullable<> |
nchar | SqlChars, SqlString | String, Char[] |
ntext | Tidak | Tidak |
numerik | SqlDecimal | Desimal, Desimal Nullable<> |
nvarchar | SqlChars, SqlString SQLChars adalah kecocokan yang lebih baik untuk transfer dan akses data, dan SQLString adalah kecocokan yang lebih baik untuk melakukan operasi String. |
String, Char[] |
nvarchar(1), nchar(1) | SqlChars, SqlString | Char, String, Char[], Nullable<char> |
real | SqlSingle (rentang SqlSingle, namun, lebih besar dari nyata) | Tunggal, Tunggal Nullable<> |
rowversion | Tidak | Byte[] |
smallint | SqlInt16 | Int16, Nullable<Int16> |
smallmoney | SqlMoney | Desimal, Desimal Nullable<> |
aql_variant | Tidak | Objek |
tabel | Tidak | Tidak |
text | Tidak | Tidak |
time | Tidak | Rentang Waktu, Rentang Waktu Nullable<> |
timestamp | Tidak | Tidak |
kecil | SqlByte | Byte, Byte Nullable<> |
pengidentifikasi unik | SqlGuid | Guid, Guid Nullable<> |
Jenis yang ditentukan pengguna (UDT) | Tidak | Kelas yang sama yang terikat ke jenis yang ditentukan pengguna dalam rakitan yang sama atau rakitan dependen. |
varbinary | SqlBytes, SqlBinary | Byte[] |
varbinary(1), biner(1) | SqlBytes, SqlBinary | byte, Byte[], Byte nullable<> |
varchar | Tidak | Tidak |
xml | SqlXml | Tidak |
Konversi Jenis Data Otomatis dengan Parameter Keluar
Metode CLR dapat mengembalikan informasi ke kode panggilan atau program dengan menandai parameter input dengan pengubah keluar (Microsoft Visual C#) atau< Out()> ByRef (Microsoft Visual Basic) Jika parameter input adalah jenis data CLR di namespace System.Data.SqlTypes, dan program panggilan menentukan jenis data SQL Server yang setara sebagai parameter input, konversi jenis terjadi secara otomatis ketika metode CLR mengembalikan jenis data.
Misalnya, prosedur tersimpan CLR berikut memiliki parameter input jenis data CLR SqlInt32 yang ditandai dengan keluar (C#) atau <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
Setelah rakitan dibangun dan dibuat dalam database, prosedur tersimpan dibuat di SQL Server dengan Transact-SQL berikut, yang menentukan jenis data SQL Server int sebagai parameter OUTPUT:
CREATE PROCEDURE PriceSum (@sum int OUTPUT)
AS EXTERNAL NAME TestStoredProc.StoredProcedures.PriceSum
Ketika prosedur tersimpan CLR dipanggil, jenis data SqlInt32 secara otomatis dikonversi ke jenis data int , dan dikembalikan ke program panggilan.
Namun, tidak semua jenis data CLR dapat dikonversi secara otomatis ke jenis data SQL Server yang setara melalui parameter keluar. Tabel berikut mencantumkan pengecualian ini.
Jenis data CLR (SQL Server) | Jenis data SQL Server |
---|---|
Desimal | smallmoney |
SqlMoney | smallmoney |
Desimal | money |
DateTime | smalldatetime |
SQLDateTime | smalldatetime |
Ubah Riwayat
Konten yang diperbarui |
---|
Menambahkan jenis SqlGeography, SqlGeometry, dan SqlHierarchyId ke tabel pemetaan. |