Condividi tramite


Esposizione della programmabilità SQL sul Web

Questa caratteristica verrà rimossa a partire da una delle prossime versioni di Microsoft SQL Server. Evitare di utilizzare questa funzionalità in un nuovo progetto di sviluppo e prevedere interventi di modifica nelle applicazioni in cui è attualmente implementata.

Quando si creano o aggiornano endpoint HTTP SOAP, è possibile esporre selettivamente stored procedure o funzioni definite dall'utente come metodi Web. I metodi Web sono stored procedure o funzioni definite dall'utente esistenti, create utilizzando l'istruzione Transact-SQL appropriata, ad esempio CREATE PROCEDURE per una stored procedure o CREATE FUNCTION per una funzione definita dall'utente e definite per l'accesso al Web tramite l'endpoint.

Dopo la creazione di una stored procedure o di una funzione definita dall'utente nel server, è possibile esporla pubblicamente come metodo Web utilizzando le istruzioni DDL per gli endpoint CREATE ENDPOINT o ALTER ENDPOINT.

[!NOTA]

Le funzioni definite dall'utente che restituiscono valori di tabella non sono supportate.

Linee guida per la denominazione dei parametri e limitazioni per i metodi Web

In base alle regole per la denominazione di SQL Server, i parametri utilizzati nelle stored procedure e nelle funzioni definite dall'utente devono essere denominati con la formattazione corretta. Per ulteriori informazioni, vedere Utilizzo degli identificatori come nomi di oggetti e Impostazione di un nome di parametro.

A volte, per i nomi di stored procedure e funzioni definite dall'utente sono consentiti alcuni tipi di convenzioni di denominazione obsoleti, non accettabili con l'accesso ai servizi Web XML nativi. I nomi di parametro ammessi dalle regole per la denominazione dei parametri di SQL Server, ma obsoleti e non consentiti quando la stored procedure o funzione definita dall'utente viene esposta come metodo Web includono:

@

@@

@@this_is_not_a_global

Per consentire l'esposizione mediante l'accesso ai servizi Web XML nativi è necessario modificare i nomi di parametro obsoleti per la procedura o la funzione richiesta, in modo da utilizzare parametri con i nomi standard in formato @param.

Esposizione di stored procedure di sistema

Molte attività informative e amministrative di SQL Server possono essere eseguite tramite stored procedure di sistema. È possibile esporre queste procedure come metodi di servizi Web accessibili tramite endpoint HTTP.

Tutte le stored procedure di sistema vengono archiviate nel database di sistema Resource, ma non tutte le stored procedure contengono informazioni sui metadati che consentono alle richieste WSDL (Web Service Description Language) generate dal server di esporre lo schema corretto. Ciò può provocare situazioni in cui alcune stored procedure di sistema non operano come previsto se esposte in un endpoint HTTP.

Se si desidera esporre stored procedure di sistema come parte della soluzione di gestione personalizzata di SQL Server è possibile utilizzare gli approcci alternativi illustrati di seguito, che consentono di aggirare le situazioni in cui non è possibile rendere accessibile una specifica stored procedure di sistema.

  • Innanzitutto, per il semplice utilizzo non ricorsivo delle stored procedure di sistema, provare a creare stored procedure definite dall'utente per eseguire il wrapping della stored procedure di sistema che si desidera esporre in un endpoint HTTP.

  • Se l'approccio precedente si dimostra troppo complesso o laborioso da gestire perché si utilizzano chiamate nidificate a più stored procedure, provare a utilizzare come soluzione alternativa il metodo sqlbatch. Per un esempio sull'utilizzo di sqlbatch, vedere Struttura dei messaggi di richiesta SOAP.