Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Runtime bahasa umum (CLR) dari .NET Framework memungkinkan penggunaan kata kunci deskriptif, yang disebut atribut. Atribut ini memberikan informasi tambahan untuk banyak elemen, seperti metode dan kelas. Atribut disimpan di rakitan dengan metadata objek, dan dapat digunakan untuk menjelaskan kode Anda ke alat pengembangan lain atau untuk memengaruhi perilaku runtime di dalam SQL Server.
Ketika Anda mendaftarkan rutinitas CLR dengan SQL Server, SQL Server memperoleh serangkaian properti tentang rutinitas tersebut. Properti rutin ini menentukan kemampuan rutinitas, termasuk apakah rutinitas dapat diindeks. Misalnya, mengatur DataAccess properti untuk DataAccessKind.Read memungkinkan Anda mengakses data dari tabel pengguna SQL Server di dalam fungsi CLR. Contoh berikut menunjukkan kasus sederhana di mana DataAccess properti diatur untuk memfasilitasi akses data dari tabel pengguna1.
using System;
using System.Data;
using System.Data.Sql;
using System.Data.SqlTypes;
using Microsoft.SqlServer.Server;
using System.Data.SqlClient;
public partial class UserDefinedFunctions
{
[SqlFunction(DataAccess = DataAccessKind.Read)]
public static string func1()
{
// Open a connection and create a command
SqlConnection conn = new SqlConnection("context connection = true");
conn.Open();
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = "SELECT str_val FROM table1 WHERE int_val = 10";
// where table1 is a user table
// Execute this command
SqlDataReader rd = cmd.ExecuteReader();
// Set string ret_val to str_val returned from the query
string ret_val = rd.GetValue(0).ToString();
rd.Close();
return ret_val;
}
}
Imports System
Imports System.Data
Imports System.Data.Sql
Imports System.Data.SqlTypes
Imports Microsoft.SqlServer.Server
Imports System.Data.SqlClient
Public partial Class UserDefinedFunctions
<SqlFunction(DataAccess = DataAccessKind.Read)> _
Public Shared Function func1() As String
' Open a connection and create a command
Dim conn As SqlConnection = New SqlConnection("context connection = true")
conn.Open()
Dim cmd As SqlCommand = conn.CreateCommand()
cmd.CommandText = "SELECT str_val FROM table1 WHERE int_val = 10"
' where table1 is a user table
' Execute this command
Dim rd As SqlDataReader = cmd.ExecuteReader()
' Set string ret_val to str_val returned from the query
Dim ret_val As String = rd.GetValue(0).ToString()
rd.Close()
Return ret_val
End Function
End Class
Untuk rutinitas Transact-SQL, SQL Server memperoleh properti rutin langsung dari definisi rutin. Untuk rutinitas CLR, server tidak menganalisis isi rutinitas untuk mendapatkan properti ini. Sebagai gantinya, Anda dapat menggunakan atribut kustom untuk kelas dan anggota kelas yang diimplementasikan dalam bahasa .NET Framework.
Atribut kustom yang diperlukan untuk rutinitas CLR, jenis yang ditentukan pengguna, dan agregat ditentukan dalam Microsoft.SqlServer.Server namespace layanan.