Поделиться через


Пошаговое руководство. Выполнение отладки расширенной хранимой процедуры

Обновлен: Ноябрь 2007

Этот раздел применим к:

Выпуск

Visual Basic

C#

C++

Web Developer

Экспресс-выпуск

Тема не применяется Тема не применяется Тема не применяется Тема не применяется

Standard

Тема не применяется Тема не применяется Тема не применяется Тема не применяется

Pro и Team

Тема применяется Тема применяется Тема применяется Тема применяется

Условные обозначения таблицы:

Тема применяется

Применяется

Тема не применяется

Не применяется

Тема применяется, но команда по умолчанию сокрыта

Команда или команды, скрытые по умолчанию.

6c02e2k1.alert_caution(ru-ru,VS.90).gifВнимание!

Расширенные хранимые процедуры являются устаревшими. Несмотря на то, что эти процедуры продолжают поддерживаться для обратной совместимости с ASP.NET, этой поддержи не будет в будущем выпуске.

Расширенные хранимые процедуры были введены для того, чтобы сделать возможными действия, которые невозможно выполнить в T-SQL, например, доступ к файловой системе, чтение реестра и т. д. Теперь, когда можно выполнять эти операции с помощью процедур SQL CLR, нет необходимости писать расширенные хранимые процедуры. Настоятельно рекомендуется не писать новых расширенных хранимых процедур, а заменять существующие процедуры идентичными, но более безопасными хранимыми процедурами SQL CLR.

Расширенные хранимые процедуры являются библиотеками DLL на C++ или любом другом языке, кроме SQL. Поэтому отладка расширенных хранимых процедур более похожа на отладку любой библиотеки DLL этого языка.

6c02e2k1.alert_caution(ru-ru,VS.90).gifВнимание!

Расширенные хранимые процедуры обычно пишутся на языке C++ и не имеют защиты, присущей процедурам, созданным с помощью управляемого кода. Эти процедуры следует тщательно проверять, поскольку ошибки потенциально могут привести к сбою SQL Server. Чтобы избежать потенциальных потерь данных и других проблем, не выполняйте отладку расширенных хранимых процедур на рабочем сервере. Дополнительные сведения см. в электронной документации по ASP.NET.

Отображаемые диалоговые окна и команды меню могут отличаться от описанных в справке, в зависимости от текущих параметров или выпуска. Чтобы изменить параметры, в меню Сервис выберите команду Параметры импорта и экспорта. Дополнительные сведения см. в разделе Параметры Visual Studio.

Выполнение отладки расширенной хранимой процедуры

  1. Начните с отладочного построения расширенной хранимой процедуры библиотеки DLL. Для отладки также потребуется приложение, вызывающее расширенную хранимую процедуру, которую необходимо отладить. Если такого приложения нет, следует выполнить одно из следующих действий:

    • Создать проект базы данных Visual Studio с подключением к данным для базы данных, содержащей данную расширенную хранимую процедуру, и кодом, вызывающим эту процедуру.

    • Создать файл сценария SQL, вызывающий данную расширенную хранимую процедуру.

      -или-

    • Использовать приложение, такое как ISQL/W (входит в состав SQL Server) или ODBC Test (входит в состав ODBC SDK).

  2. Если SQL Server в данный момент работает как служба, остановите эту службу; для этого откройте панель управления Службы, выберите SQL Server и нажмите "Остановить".

  3. Скопируйте отлаживаемую версию библиотеки DLL в каталог, в котором размещается sqlservr.exe, или в любой каталог, находящийся в пути поиска.

    -или-

    Задайте событие после построения, чтобы скопировать библиотеку DLL в проект C++, как показано ниже:

    1. Откройте диалоговое окно <Проект> Страницы свойств.

    2. В диалоговом окне <Проект> Страницы свойств, откройте папку Свойства конфигурации.

    3. В папке Свойства конфигурации откройте папку Построение событий.

    4. Выберите Событие после построения.

    5. В элементе управления сеткой, который следует за пунктом Командная строка, введите команду "copy", как в следующем примере:

      Copy c:\MyProjects\MyXProc\debug\MyXProc.dll C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Binn

  4. Зарегистрируйте расширенную хранимую процедуру.

  5. Укажите 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. Это делает возможным перехват и обработку точек останова.

  6. Установите точки останова в исходном коде расширенной хранимой процедуры.

  7. Для начала сеанса отладки используйте команду выполнения. Дополнительные сведения см. в разделе Элемент управления выполнением.

    После запуска SQL Server появится окно консоли. По завершении прокрутки выводимого текста последним сообщением будет:

    Запущена процедура запуска "sp_sqlregister"

    SQL Server запущен и начинает обрабатывать запросы.

  8. Выполните расширенную хранимую процедуру.

    Отладчик останавливается при достижении строки, содержащей точку прерывания.

    Дополнительные рекомендации по написанию расширенных хранимых процедур см. в разделе базы знаний Microsoft, посвященном SQL Server, или в разделе "Программирование расширенных хранимых процедур" документации по SQL Server в библиотеке MSDN.

См. также

Основные понятия

Отладка SQL