Пошаговое руководство. Отладка определенной пользователем скалярной CLR-функции SQL
Обновлен: Ноябрь 2007
Этот раздел применим к:
Выпуск |
Visual Basic |
C# |
C++ |
Web Developer |
---|---|---|---|---|
Express |
||||
Standard |
||||
Pro и Team |
Обозначения:
Применяется |
|
Неприменимо |
|
Команда или команды скрыты по умолчанию. |
В этом примере демонстрируется отладка определяемой пользователем (UDF) CLR-функции SQL. В нем в учебной базе данных AdventureWorks создается новая определяемая пользователем CLR-функция SQL.
Примечание. |
---|
Отображаемые диалоговые окна и команды меню могут отличаться от описанных в справке, в зависимости от текущих параметров или выпуска. Для изменения параметров в меню Сервис выберите команду Импорт и экспорт параметров. Дополнительные сведения см. в разделе Параметры Visual Studio. |
Отладка определяемой пользователем скалярной CLR-функции SQL
В новом проекте SQL Server установите соединение с учебной базой данных AdventureWorks. Дополнительные сведения см. в разделе Практическое руководство. Подключение к базе данных.
Создайте новую функцию, используя код из раздела примеров ниже, и дайте файлу имя OrderCount.cs. Дополнительные сведения см. в разделе Практическое руководство. Разработка с помощью типа проекта SQL Server.
Добавьте сценарий, тестирующий функцию, включив его в оператор SELECT. В обозревателе решений щелкните правой кнопкой мыши каталог Сценарии тестирования, выберите пункт Добавить сценарий тестирования и вставьте код из второго примера в нижеприведенном разделе. Сохраните файл под именем CallOrderCount.sql. Щелкните правой кнопкой мыши имя файла и выберите команду Установить как сценарий отладки по умолчанию.
Поместите точку останова в OrderCount.csна строке, в которой создается экземпляр SqlCommand, затем в меню Отладка выберите команду Запуск, чтобы скомпилировать, развернуть и провести модульное тестирование проекта. Появление указателя инструкций, имеющего вид желтой стрелки, на точке останова означает, что выполняется отладка функции.
Попробуйте использовать различные функции отладки.
Перейдите через оператор, создающий экземпляр SqlCommand, с помощью команды Шаг с заходом в меню Отладка.
В окне Локальные откройте переменную sqlComm, которая относится к классу SqlCommand, и исследуйте ее члены.
В меню Отладка выберите команду Шаг с заходом, чтобы зайти на одну строку в функцию. Обратите внимание, что был создан экземпляр члена sqlComm.CommandText.
В текстовом редакторе перетащите sqlComm в любое место в окне Контрольные значения. Теперь переменная добавлена в список контролируемых переменных.
Выберите команду Шаг с заходом и обратите внимание, что открывается окно с названием Динамический T-SQL, отображающее оператор SQL, который будет выполняться следующим.
Выберите команду Шаг с заходом, чтобы выполнить оператор и вернуться к функции.
Снова нажмите Продолжить и обратите внимание, что открывается второе окно Динамический T-SQL, отображающее код, возвращающий значение функции.
Снова нажмите Продолжить, чтобы завершить отладку функции.
Пример
Это код, необходимый для создания функции.
using System;
using System.Data.SqlClient;
using Microsoft.SqlServer.Server;
public partial class UserDefinedFunctions
{
[Microsoft.SqlServer.Server.SqlFunction(DataAccess = DataAccessKind.Read)]
public static int OrderCount()
{
using (SqlConnection conn = new SqlConnection("context connection=true"))
{
conn.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText = "SELECT 42";
//cmd = new SqlCommand("SELECT 42",conn);
int result = (int)cmd.ExecuteScalar();
return result;
}
}
};
Это тестовый сценарий вызова функции.
SELECT dbo.OrderCount()
См. также
Задачи
Практическое руководство. Создание и запуск пользовательской функции SQL Server в среде CLR