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 di Microsoft .NET Framework.
Tipe data SQL Server | Ketik (di System.Data.SqlTypes atau Microsoft.SqlServer.Types) | Jenis data CLR (.NET Framework) |
---|---|---|
bigint | SqlInt64 | Int64, Nullable<Int64> |
binary | SqlBytes, SqlBinary | Byte[] |
bit | SqlBoolean | Boolean, Boolean Nullable<> |
char | Tidak ada | Tidak ada |
cursor | Tidak ada | Tidak ada |
date | SqlDateTime | DateTime, DateTime Yang Dapat Diubah Ke Null<> |
datetime | SqlDateTime | DateTime, DateTime Yang Dapat Diubah Ke Null<> |
datetime2 | Tidak ada | DateTime, DateTime Yang Dapat Diubah Ke Null<> |
DATETIMEOFFSET | Tidak ada | DateTimeOffset, DateTimeOffset Nullable<> |
desimal | SqlDecimal | Desimal, Desimal Nullable<> |
Float | SqlDouble | Double, Nullable<Double> |
geografi | SqlGeography SqlGeography didefinisikan dalam Microsoft.SqlServer.Types.dll, yang diinstal dengan SQL Server dan dapat diunduh dari paket fitur SQL Server. |
Tidak ada |
geometri | SqlGeometry SqlGeometry didefinisikan dalam Microsoft.SqlServer.Types.dll, yang diinstal dengan SQL Server dan dapat diunduh dari paket fitur SQL Server. |
Tidak ada |
hierarchyid | SqlHierarchyId SqlHierarchyId didefinisikan dalam Microsoft.SqlServer.Types.dll, yang diinstal dengan SQL Server dan dapat diunduh dari paket fitur SQL Server. |
Tidak ada |
gambar | Tidak ada | Tidak ada |
int | SqlInt32 | Int32, Nullable<Int32> |
money | SqlMoney | Desimal, Desimal Nullable<> |
nchar | SqlChars, SqlString | String, Char[] |
ntext | Tidak ada | Tidak ada |
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 | Karakter, String, Char[], Karakter nullable<> |
nyata | SqlSingle (rentang SqlSingle, namun, lebih besar dari nyata) | Tunggal, Tunggal Yang Dapat Diubah Ke null<> |
rowversion | Tidak ada | Byte[] |
smallint | SqlInt16 | Int16, Nullable<Int16> |
smallmoney | SqlMoney | Desimal, Desimal Nullable<> |
aql_variant | Tidak ada | Object |
tabel | Tidak ada | Tidak ada |
teks | Tidak ada | Tidak ada |
waktu | Tidak ada | Rentang Waktu, Rentang Waktu Yang Dapat Diubah Ke Null<> |
timestamp | Tidak ada | Tidak ada |
tinyint | SqlByte | Byte, Byte Nullable<> |
uniqueidentifier | SqlGuid | Guid, Guid Nullable<> |
Jenis yang ditentukan pengguna (UDT) | Tidak ada | Kelas yang sama yang terikat dengan 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 ada | Tidak ada |
xml | SqlXml | Tidak ada |
Konversi Tipe Data Otomatis dengan Parameter Keluar
Metode CLR dapat mengembalikan informasi ke kode atau program panggilan 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 SQL Server yang setara jenis data sebagai parameter input, konversi jenis terjadi secara otomatis saat 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 dibuat 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) | Tipe data SQL Server |
---|---|
Desimal | smallmoney |
SqlMoney | smallmoney |
Desimal | money |
DateTime | smalldatetime |
SQLDateTime | smalldatetime |
Riwayat Perubahan
Konten yang diperbarui |
---|
Menambahkan jenis SqlGeography, SqlGeometry, dan SqlHierarchyId ke tabel pemetaan. |
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk