Пошаговое руководство. Выполнение отладки расширенной хранимой процедуры
Обновлен: Ноябрь 2007
Этот раздел применим к:
Выпуск |
Visual Basic |
C# |
C++ |
Web Developer |
---|---|---|---|---|
Экспресс-выпуск |
![]() |
![]() |
![]() |
![]() |
Standard |
![]() |
![]() |
![]() |
![]() |
Pro и Team |
![]() |
![]() |
![]() |
![]() |
Условные обозначения таблицы:
![]() |
Применяется |
![]() |
Не применяется |
![]() |
Команда или команды, скрытые по умолчанию. |
![]() |
---|
Расширенные хранимые процедуры являются устаревшими. Несмотря на то, что эти процедуры продолжают поддерживаться для обратной совместимости с ASP.NET, этой поддержи не будет в будущем выпуске. |
Расширенные хранимые процедуры были введены для того, чтобы сделать возможными действия, которые невозможно выполнить в T-SQL, например, доступ к файловой системе, чтение реестра и т. д. Теперь, когда можно выполнять эти операции с помощью процедур SQL CLR, нет необходимости писать расширенные хранимые процедуры. Настоятельно рекомендуется не писать новых расширенных хранимых процедур, а заменять существующие процедуры идентичными, но более безопасными хранимыми процедурами SQL CLR.
Расширенные хранимые процедуры являются библиотеками DLL на C++ или любом другом языке, кроме SQL. Поэтому отладка расширенных хранимых процедур более похожа на отладку любой библиотеки DLL этого языка.
![]() |
---|
Расширенные хранимые процедуры обычно пишутся на языке C++ и не имеют защиты, присущей процедурам, созданным с помощью управляемого кода. Эти процедуры следует тщательно проверять, поскольку ошибки потенциально могут привести к сбою SQL Server. Чтобы избежать потенциальных потерь данных и других проблем, не выполняйте отладку расширенных хранимых процедур на рабочем сервере. Дополнительные сведения см. в электронной документации по ASP.NET. |
Отображаемые диалоговые окна и команды меню могут отличаться от описанных в справке, в зависимости от текущих параметров или выпуска. Чтобы изменить параметры, в меню Сервис выберите команду Параметры импорта и экспорта. Дополнительные сведения см. в разделе Параметры Visual Studio.
Выполнение отладки расширенной хранимой процедуры
Начните с отладочного построения расширенной хранимой процедуры библиотеки DLL. Для отладки также потребуется приложение, вызывающее расширенную хранимую процедуру, которую необходимо отладить. Если такого приложения нет, следует выполнить одно из следующих действий:
Создать проект базы данных Visual Studio с подключением к данным для базы данных, содержащей данную расширенную хранимую процедуру, и кодом, вызывающим эту процедуру.
Создать файл сценария SQL, вызывающий данную расширенную хранимую процедуру.
-или-
Использовать приложение, такое как ISQL/W (входит в состав SQL Server) или ODBC Test (входит в состав ODBC SDK).
Если SQL Server в данный момент работает как служба, остановите эту службу; для этого откройте панель управления Службы, выберите SQL Server и нажмите "Остановить".
Скопируйте отлаживаемую версию библиотеки DLL в каталог, в котором размещается sqlservr.exe, или в любой каталог, находящийся в пути поиска.
-или-
Задайте событие после построения, чтобы скопировать библиотеку DLL в проект C++, как показано ниже:
Откройте диалоговое окно <Проект> Страницы свойств.
В диалоговом окне <Проект> Страницы свойств, откройте папку Свойства конфигурации.
В папке Свойства конфигурации откройте папку Построение событий.
Выберите Событие после построения.
В элементе управления сеткой, который следует за пунктом Командная строка, введите команду "copy", как в следующем примере:
Copy c:\MyProjects\MyXProc\debug\MyXProc.dll C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Binn
Зарегистрируйте расширенную хранимую процедуру.
Укажите SQL Server в качестве вызывающей программы и задайте рабочий каталог для библиотеки DLL расширенной хранимой процедуры. Измените параметры в диалоговом окне <Проект> Свойства проекта, которое можно вызвать в категории Отладка пункта Свойства конфигурации, как показано ниже:
Если SQL Server был установлен в место по умолчанию, введите C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Binn\SQLSERVR.EXE в поле Команда.
Установите для записи Рабочий каталог в каталог C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Binn.
Установите для записи Аргументы командной строки аргумент -c. Аргумент -c указывает SQL Server на запуск из командной строки и на то, что SQL Server не выполняется как служба. Это приводит к более быстрому запуску SQL Server. SQL Server запустится не как служба, а как консольное приложение под управлением среды отладки Visual Studio. Это делает возможным перехват и обработку точек останова.
Установите точки останова в исходном коде расширенной хранимой процедуры.
Для начала сеанса отладки используйте команду выполнения. Дополнительные сведения см. в разделе Элемент управления выполнением.
После запуска SQL Server появится окно консоли. По завершении прокрутки выводимого текста последним сообщением будет:
Запущена процедура запуска "sp_sqlregister"
SQL Server запущен и начинает обрабатывать запросы.
Выполните расширенную хранимую процедуру.
Отладчик останавливается при достижении строки, содержащей точку прерывания.
Дополнительные рекомендации по написанию расширенных хранимых процедур см. в разделе базы знаний Microsoft, посвященном SQL Server, или в разделе "Программирование расширенных хранимых процедур" документации по SQL Server в библиотеке MSDN.