Exposition de la programmabilité SQL sur le Web

Cette fonctionnalité sera supprimée dans une prochaine version de Microsoft SQL Server. Évitez d'utiliser cette fonctionnalité dans de nouveaux travaux de développement et prévoyez de modifier les applications qui utilisent actuellement cette fonctionnalité.

Lorsque vous créez ou mettez à jour des points de terminaison SOAP HTTP, les procédures stockées ou les fonctions définies par l'utilisateur peuvent être exposées de manière sélective en tant que méthodes Web. Les méthodes Web sont des procédures stockées ou des fonctions définies par l'utilisateur qui ont déjà été créées à l'aide de l'instruction Transact-SQL appropriée (par exemple CREATE PROCEDURE pour une procédure stockée ou CREATE FUNCTION pour une fonction définie par l'utilisateur) et qui sont définies pour autoriser un accès Web via le point de terminaison.

Une fois que la procédure stockée ou la fonction définie par l'utilisateur a été créée sur le serveur, elle peut être exposée publiquement en tant que méthode Web à l'aide des instructions DLL des points de terminaison CREATE ENDPOINT ou ALTER ENDPOINT.

Notes

Les fonctions définies par l'utilisateur qui retournent des valeurs de table ne sont pas prises en charge.

Consignes d'affectation de nom et limitations concernant les paramètres pour les méthodes Web

Conformément aux règles d'affectation de nom de SQL Server, les paramètres utilisés dans les fonctions définies par l'utilisateur et les procédures stockées doivent posséder des noms correctement formatés. Pour plus d'informations, consultez Utilisation des identificateurs comme noms d'objet et Spécification d'un nom de paramètre.

Parfois, certains types de conventions d'affectation de nom obsolètes sont autorisés pour les noms de procédures stockées et de fonctions définies par l'utilisateur non utilisables avec l'accès aux services Web XLM natifs. La liste suivante répertorie les noms de paramètres qui sont autorisés par les règles d'affectation de nom de SQL Server, mais qui sont devenus obsolètes et ne sont pas autorisés lorsque la procédure stockée ou la fonction définie par l'utilisateur est exposée en tant que méthode Web :

@

@@

@@this_is_not_a_global

Pour qu'une exposition via l'accès aux services Web XML natifs soit possible, vous devez modifier ces noms de paramètres obsolètes pour la fonction ou la procédure demandée, afin que les paramètres possédant des noms standard au format @param puissent être utilisés.

Exposition de procédures stockées système

Dans SQL Server, les procédures stockées système permettent d'effectuer plusieurs tâches d'administration et d'information. Parfois, vous pouvez exposer ces procédures en tant que méthodes de service Web auxquelles il est possible d'accéder via les points de terminaison HTTP.

Toutes les procédures stockées système sont stockées dans la base de données des ressources système, mais certaines d'entre elles ne possèdent pas d'informations de métadonnées qui permettront aux réponses WSDL (Web Service Description Language) générées par le serveur d'exposer le schéma correct. Aussi, dans certains cas de figure, des procédures stockées système ne fonctionnent pas correctement lorsqu'elles sont exposées sur un point de terminaison HTTP.

Si vous prévoyez d'exposer des procédures stockées système dans le cadre de votre solution de gestion SQL Server personnalisée, vous pouvez alors utiliser les approches suivantes. Celles-ci vous permettront de trouver une solution lorsqu'il n'est pas possible d'accéder à une procédure stockée système spécifique.

  • Tout d'abord, pour une utilisation non récursive simple des procédures stockées système, essayez de créer vos propres procédures stockées définies par l'utilisateur pour envelopper la procédure stockée système que vous voulez exposer sur un point de terminaison HTTP.

  • Ensuite, si l'approche précédente se révèle trop complexe ou lourde à gérer car vous utilisez des appels imbriqués à plusieurs procédures stockées, essayez d'utiliser la méthode sqlbatch pour résoudre le problème. Pour visualiser un exemple d'utilisation de sqlbatch, consultez Structure des messages de demande SOAP.