Compartir a través de


Exponer la programación SQL en la Web

Esta característica se quitará en una versión futura de Microsoft SQL Server. Evite utilizar esta característica en nuevos trabajos de desarrollo y tenga previsto modificar las aplicaciones que actualmente la utilizan.

Cuando crea o actualiza extremos HTTP SOAP, los procedimientos almacenados o las funciones definidas por el usuario se pueden exponer de manera selectiva como métodos Web. Los métodos Web son procedimientos almacenados existentes o funciones definidas por el usuario que ya se han creado utilizando la instrucción adecuada de Transact-SQL, como CREATE PROCEDURE para un procedimiento almacenado o CREATE FUNCTION para una función definida por el usuario, y que se han definido para acceso a la Web a través del extremo.

Una vez que se ha creado un procedimiento almacenado o una función definida por el usuario en el servidor, posteriormente éste se puede exponer públicamente como método Web mediante el uso de las instrucciones DDL del extremo: CREATE ENDPOINT o ALTER ENDPOINT.

[!NOTA]

No se admiten las funciones definidas por el usuario que devuelven valores de tabla.

Instrucciones y limitaciones de la nomenclatura de parámetros para métodos Web

Según las reglas de nomenclatura de SQL Server, los parámetros que se utilizan en las funciones definidas por el usuario y en los procedimientos almacenados deben tener asignado nombres correctamente formados. Para obtener más información, vea Usar identificadores como nombres de objeto y Especificar un nombre de parámetro.

En ocasiones, se admiten determinados tipos de convenciones de nomenclatura en desuso para los nombres de las funciones definidas por el usuario y los procedimientos almacenados que no son aceptables para el acceso de los servicios Web XML nativos. Los nombres de parámetros admitidos por las reglas de nomenclatura de parámetros de SQL Server, que están en desuso y no están permitidos cuando una función definida por el usuario o un procedimiento almacenado se expone a un método Web, son:

@

@@

@@this_is_not_a_global

A fin de que se pueda realizar la exposición a través del acceso a los servicios Web XML nativos, es necesario modificar estos nombres de parámetros en desuso asignados a la función o al procedimiento solicitado para permitir el uso de parámetros con nombres estándar que sigan el formato @param.

Exponer procedimientos almacenados del sistema

En SQL Server, se pueden usar procedimientos almacenados del sistema para realizar diversas actividades administrativas y de información. En ocasiones, posiblemente desee exponer estos procedimientos como métodos de servicio Web a los que se pueda obtener acceso mediante extremos HTTP.

Todos los procedimientos almacenados del sistema se guardan en la base de datos de recursos del sistema, aunque no todos los procedimientos almacenados del sistema tienen información de metadatos que admita la exposición de respuestas WSDL (lenguaje de descripción de servicios Web) en el esquema correcto. De esta manera, se pueden crear situaciones en que algunos procedimientos almacenados del sistema no sean tan operativos como se espera cuando estén expuestos al extremo HTTP.

Si tiene previsto exponer los procedimientos almacenados del sistema como parte de su propia solución personalizada de administración de SQL Server, puede utilizar los siguientes enfoques alternativos. Estos enfoques le permiten resolver situaciones en las que no es posible obtener acceso a un determinado procedimiento almacenado del sistema.

  • En primer lugar, si desea dar un uso sencillo no recursivo a los procedimientos almacenados del sistema, intente crear sus propios procedimientos almacenados definidos por el usuario para englobar el procedimiento almacenado del sistema que desea exponer en un extremo HTTP.

  • En segundo lugar, si el enfoque anterior le resulta demasiado complejo o difícil de administrar porque está utilizando llamadas anidadas dirigidas a varios procedimientos almacenados, considere utilizar el método sqlbatch en lugar de una solución. Para obtener un ejemplo de cómo utilizar el método sqlbatch, vea Estructura de los mensajes de solicitud SOAP.