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


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

Этот раздел применим для следующих версий:

Visual Studio Ultimate

Visual Studio Premium

Visual Studio Professional

Visual Studio Express

6c02e2k1.DoesApplybmp(ru-ru,VS.100).gif 6c02e2k1.DoesApplybmp(ru-ru,VS.100).gif 6c02e2k1.DoesApplybmp(ru-ru,VS.100).gif 6c02e2k1.DoesNotApplybmp(ru-ru,VS.100).gif

Предупреждение

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

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

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

Предупреждение

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

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

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

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

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

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

      — или —

    • Используйте такие приложения, как среда SQL Server Management Studio, входящяя в состав SQL Server, или ODBC Test, входящее в состав пакета ODBC SDK.

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

  3. Скопируйте отладочную версию DLL в каталог, в котором находится файл Sqlservr.exe, либо в любой другой каталог в пути поиска.

    — или —

    Задайте событие после построения для копирования DLL в проект С++.

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

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

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

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

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

      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 запустится не как служба, а как приложение командной строки под управлением среды отладки Visual Studio.Это обеспечит правильное обнаружение и обработку точек останова.

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

  7. С помощью команды выполнения запустите сеанс отладки.Дополнительные сведения см. в разделе Управление выполнением.

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

    Инициирована процедура запуска 'sp_sqlregister'.

    SQL Server запустится и начнется обработка запросов.

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

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

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

См. также

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

Отладка Transact-SQL