在 Web 上公開 SQL 可程式性
未來的 Microsoft SQL Server 版本將移除這項功能。請避免在新的開發工作中使用這項功能,並規劃修改目前使用這項功能的應用程式。
當您建立或更新 HTTP SOAP 結束點時,可以選擇性地以「Web 方法」公開預存程序或使用者定義函數。Web 方法是使用適當的 Transact-SQL 陳述式所建立的現有預存程序或使用者定義函數,例如以 CREATE PROCEDURE 建立的預存程序或以 CREATE FUNCTION 建立的使用者定義函數,而且是透過結束點針對 Web 存取所定義的。
在伺服器建立預存程序或使用者定義函數後,就可以使用結束點 DDL 陳述式 CREATE ENDPOINT 或 ALTER ENDPOINT,以 Web 方法來公開它。
[!附註]
不支援傳回資料表值的使用者定義函數。
參數命名指導方針和 Web 方法的限制
根據 SQL Server 的命名規則,使用者定義函數和預存程序中所使用的參數必須有正確格式的名稱。如需詳細資訊,請參閱<將識別碼當成物件名稱使用>與<指定參數名稱>。
有時,某些被取代的命名慣例類型,可用於使用者定義函數以及不適用於「原生 XML Web Service」存取的預存程序名稱。SQL Server 參數命名規則所允許但已被取代的參數名稱,以及當使用者定義函數或預存程序以 Web 方法公開時不允許的參數名稱包含:
@
@@
@@this_is_not_a_global
若要允許透過「原生 XML Web Service」存取來公開,這些被取代的參數名稱必須針對要求的程序或函數做修改,以允許使用具有表單 @param 標準名稱的參數。
公開系統預存程序
在 SQL Server 中,系統預存程序可用以執行數個資訊和管理活動。有時,您可能會想要以 Web 服務方法來公開這些程序,這樣就可以透過 HTTP 結束點來存取。
所有的系統預存程序都儲存在系統**「資源」**資料庫中,但並非所有的系統預存程序都有中繼資料資訊,能夠允許伺服器產生的 Web Service Description Language (WSDL) 對公開正確的結構描述做出回應。這可能會造成某些情況,即在 HTTP 結束點上公開某些系統預存程序時,它們並未按預期作業。
如果您計畫將系統預存程序以自訂 SQL Server 管理解決方案的一部份公開,您可以使用下列替代方式。這可讓您解決無法使用特定系統預存程序的情況。
首先,對於系統預存程序簡單的非遞迴用法,請試著建立自己的使用者定義預存程序,以包裝您要在 HTTP 結束點上公開的系統預存程序。
其次,如果上述方法經試驗後覺得太複雜或難以管理,因為您對多個預存程序使用巢狀呼叫,請考慮使用 sqlbatch 方法而不是解決方案。如需如何使用 sqlbatch 的範例,請參閱 SOAP 要求訊息結構。