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


Открытие доступа к программируемым функциям 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)

Справка и поддержка

Получение помощи по SQL Server 2005