Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Среда CLR платформы .NET Framework позволяет использовать описательные ключевые слова, называемые атрибутами. Эти атрибуты предоставляют дополнительные сведения для многих элементов, таких как методы и классы. Атрибуты сохраняются в сборке с метаданными объекта и могут использоваться для описания кода другим средствам разработки или влиять на поведение среды выполнения в SQL Server.
При регистрации подпрограммы CLR в SQL Server SQL Server SQL Server получает набор свойств о подпрограмме. Эти свойства подпрограммы определяют возможности подпрограммы, включая возможность индексирования подпрограммы. Например, при задании DataAccess свойства DataAccessKind.Read можно получить доступ к данным из пользовательских таблиц SQL Server в функции CLR. В следующем примере показано простое дело, в котором DataAccess свойство устанавливается для упрощения доступа к данным из таблицы пользователя 1.
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
Для Transact-SQL подпрограмм SQL Server получает свойства подпрограмм непосредственно из определения подпрограммы. Для подпрограмм СРЕДЫ CLR сервер не анализирует текст подпрограммы для получения этих свойств. Вместо этого можно использовать настраиваемые атрибуты для классов и членов классов, реализованных на языке .NET Framework.
Пользовательские атрибуты, необходимые для подпрограмм CLR, определяемых пользователем типов и агрегатов, определяются в Microsoft.SqlServer.Server пространстве имен.