在现代软件开发中,Web服务提供了一种让不同应用程序之间进行通信的机制。它们基于XML、SOAP和WSDL等标准,允许数据在不同系统之间进行交换。在SQL Server中,HTTP端点是一个特殊的对象,它允许SQL Server通过网络与外部应用程序进行通信。本文将探讨如何通过SSIS的Web服务任务调用通过HTTP端点暴露的Web服务方法。
        为了演示,将创建一个名为tbl_Players的表,并填充一些数据。以下是创建和填充该表的脚本:
        
            IF EXISTS (SELECT * FROM sys.objects WHERE name = N'tbl_Players' AND type = 'U')
                DROP TABLE tbl_Players;
            GO
            SET ANSI_NULLS ON;
            GO
            CREATE TABLE tbl_Players (
                PlayerID INT IDENTITY,
                PlayerName VARCHAR(15),
                BelongsTo VARCHAR(15),
                MatchPlayed INT,
                RunsMade INT,
                WicketsTaken INT,
                FeePerMatch NUMERIC(16,2)
            );
            GO
            INSERT INTO tbl_Players (PlayerName, BelongsTo, MatchPlayed, RunsMade, WicketsTaken, FeePerMatch) VALUES ('A. Won', 'India', 10, 440, 10, 1000000);
            -- 更多插入数据的代码...
        
        接下来,需要创建一个HTTP端点,以便Web服务可以通过它与SQL Server进行通信。以下是创建端点的脚本:
        
            IF EXISTS (SELECT NAME FROM sys.http_endpoints WHERE NAME = N'PlayerRecord_EP')
                DROP ENDPOINT PlayerRecord_EP;
            GO
            CREATE ENDPOINT [PlayerRecord_EP] 
                STATE=STARTED
                AS HTTP 
                (
                    PATH=N'/PlayerName', PORTS = (CLEAR) 
                    ,AUTHENTICATION = (INTEGRATED)
                    , SITE=N'localhost'
                    , CLEAR_PORT = 8000
                )
                FOR SOAP 
                (
                    WEBMETHOD 'PlayerList'
                    ( NAME=N'[SSISExperiments].[dbo].[usp_SelectPlayerRecords]'
                    )
                    , BATCHES=DISABLED
                    , WSDL=DEFAULT
                    , DATABASE=N'SSISExperiments'
                    , NAMESPACE=N'http://SSISExperiments/Players'
                );
            GO
        
        创建端点后,可以通过访问特定的URL来调用端点。例如,端点的完整路径可能是http://localhost:8000/PlayerName。
    
WSDL(Web服务描述语言)文件描述了Web服务的接口和功能。在本例中,可以通过访问http://localhost:8000/PlayerName?wsdl来查看WSDL文件。可以通过浏览器的“查看源代码”功能将WSDL文件保存到本地硬盘上。
以下是配置Web服务任务并调用Web服务的步骤: