Bagikan melalui


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.

Lihat Juga

Jenis Data SQL Server di .NET Framework