Открытие доступа к программируемым функциям SQL через Интернет
При создании или обновлении конечных точек HTTP SOAP можно выбирать хранимые процедуры, которые будут доступны, как веб-методы. Веб-методы — это существующие хранимые процедуры или пользовательские функции, уже созданные с помощью соответствующих инструкций Transact-SQL, таких как CREATE PROCEDURE для хранимых процедур и CREATE FUNCTION для пользовательских функций, настроенные для доступа к Интернету через конечную точку.
После создания хранимой процедуры или пользовательской функции на сервере можно настроить к ним открытый доступ, как к веб-методам, с помощью инструкций управления конечными точками языка DDL CREATE ENDPOINT и ALTER ENDPOINT.
Правила именования параметров и ограничения веб-методов
В соответствии с правилами назначения имен SQL Server 2005 параметры, используемые хранимыми процедурами и пользовательскими функциями, должны иметь верно форматированные имена. Дополнительные сведения см. в разделах Использование идентификаторов в качестве имен объектов и Указание имени аргумента.
Иногда для имен пользовательских функций и хранимых процедур применяются устаревшие соглашения по именованию, недопустимые при использовании собственных веб-служб с поддержкой XML. Имена параметров, которые допускаются правилами именования параметров SQL Server, однако не допустимы при использовании пользовательской функции или веб-метода, включают следующие:
@
@@
@@this_is_not_a_global
Чтобы обеспечить доступ с помощью собственных веб-служб с поддержкой XML, необходимо изменить эти устаревшие имена параметров в запрашиваемой процедуре или функции, обеспечив использование стандартных имен вида @параметр.
Открытие доступа к системным хранимым процедурам
В SQL Server 2005 возможно использование системных хранимых процедур для выполнения различных административных задач и получения сведений. Иногда может понадобиться открытие доступа к этим процедурам как к методам веб-служб, доступным через конечные точки HTTP.
Все системные хранимые процедуры хранятся в системной базе данных Resource, но не для всех системных хранимых процедур имеется сведения (метаданные), позволяющая создаваемым на сервере ответам на языке описания веб-служб (WSDL) выводить корректную схему. При этом возможна ситуация, когда некоторые системные хранимые процедуры не будут верно функционировать при открытии к ним доступа через конечную точку HTTP.
Если нужно открыть доступ к системным хранимым процедурам в рамках пользовательского решения по управлению SQL Server, можно применить следующие альтернативные подходы. Они позволят обойти ситуации, в которых определенные системные процедуры оказываются недоступными.
- Для простого нерекурсивного использования хранимых процедур можно создать собственные пользовательские процедуры, являющиеся упаковщиками системных хранимых процедур, к которым необходимо открыть доступ через конечную точку HTTP.
- Если описанный подход оказывается слишком сложным или неудобным для реализации из-за необходимости использования вложенных вызовов ко многим хранимым процедурам, с целью обойти проблему можно воспользоваться методом sqlbatch. Пример использования sqlbatch см. в разделе Структура сообщения-запроса SOAP.
См. также
Другие ресурсы
CREATE ENDPOINT (Transact-SQL)
ALTER ENDPOINT (Transact-SQL)
DROP ENDPOINT (Transact-SQL)