Пошаговое руководство. Отладка расширенной хранимой процедуры
Этот раздел применим для следующих версий:
Visual Studio Ultimate |
Visual Studio Premium |
Visual Studio Professional |
Visual Studio Express |
---|---|---|---|
![]() |
![]() |
![]() |
![]() |
Предупреждение
Расширенные хранимые процедуры являются устаревшими.Несмотря на то что они все еще поддерживаются для обеспечения обратной совместимости в ASP.NET, в будущих выпусках этой поддержки уже не будет.
Расширенные хранимые процедуры были созданы для обеспечения действий, выполнение которых невозможно в Transact-SQL, например для доступа к файловой системе, чтения реестра и так далее.Теперь, когда эти действия можно выполнять с помощью процедур SQL CLR, потребности в расширенных хранимых процедурах больше нет.Настоятельно рекомендуется не писать новые расширенные хранимые процедуры и рассмотреть возможность замены существующих расширенных хранимых процедур на равнозначные, но более безопасные хранимые процедуры SQL CLR.
Расширенные хранимые процедуры являются библиотеками DLL, написанными на языке C++ (или на любом другом языке, кроме SQL).Таким образом, отладка расширенной хранимой процедуры практически аналогична отладке любой библиотеки DLL на этом языке.
Предупреждение
Расширенные хранимые процедуры обычно пишутся на языке С++ и не имеют защиты, которая обеспечивается для управляемого кода.Их следует тщательно тестировать, поскольку ошибки в таких хранимых процедурах могут привести к сбою в работе SQL Server.Во избежание потери данных и других проблем не следует выполнять отладку расширенной хранимой процедуры на рабочем сервере.Дополнительные сведения см. в электронной документации по ASP.NET.
Отображаемые диалоговые окна и команды меню могут отличаться от описанных в справке, в зависимости от текущих параметров или выпуска.Для изменения параметров выберите пункт Импорт и экспорт параметров в меню Сервис.Дополнительные сведения см. в разделе Visual Studio Settings.
Отладка расширенной хранимой процедуры
Начните с отладочной сборки DLL расширенной хранимой процедуры.Также необходимо приложение, вызывающее расширенную хранимую процедуру, подлежащую отладке.При отсутствии такого приложения выполните одно из следующих действий.
Создайте в среде Visual Studio проект базы данных с подключением к данным для базы данных, содержащей расширенную хранимую процедуру и код для ее вызова.
Создайте файл скрипта SQL, вызывающий расширенную хранимую процедуру.
— или —
Используйте такие приложения, как среда SQL Server Management Studio, входящяя в состав SQL Server, или ODBC Test, входящее в состав пакета ODBC SDK.
Если SQL Server в данный момент работает как служба, остановите, открыв панель управления Службы, выбрав SQL Server и нажав кнопку Стоп.
Скопируйте отладочную версию DLL в каталог, в котором находится файл Sqlservr.exe, либо в любой другой каталог в пути поиска.
— или —
Задайте событие после построения для копирования DLL в проект С++.
Откройте диалоговое окно <Проект> Страницы свойств.
В диалоговом окне <Проект> Страницы свойств откройте папку Свойства конфигурации.
В папке Свойства конфигурации откройте папку События построения.
Выберите Событие после построения.
В элементе управления сеткой рядом с Командной строкой введите команду копирования, например:
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 запустится не как служба, а как приложение командной строки под управлением среды отладки Visual Studio.Это обеспечит правильное обнаружение и обработку точек останова.
Расставьте точки останова в исходном коде расширенной хранимой процедуры.
С помощью команды выполнения запустите сеанс отладки.Дополнительные сведения см. в разделе Управление выполнением.
При запуске SQL Server откроется окно консоли.Когда остановится прокрутка текста, последним будет сообщение:
Инициирована процедура запуска 'sp_sqlregister'.
SQL Server запустится и начнется обработка запросов.
Выполните расширенную хранимую процедуру.
Отладчик останавливается, дойдя до строки, содержащей точку останова.
Дополнительные сведения о написании расширенных хранимых процедур в разделе SQL Server базы знаний Microsoft или разделе, посвященном программированию расширенных хранимых процедур, документации по SQL Server в библиотеке MSDN.