ALTER ENDPOINT (Transact-SQL)

允许通过以下方法修改现有端点:

  • 向现有端点中添加一个新方法。

  • 修改或删除端点中的现有方法。

  • 更改端点的属性。

注意注意

本主题描述了特定于 ALTER ENDPOINT 的语法和参数。有关 CREATE ENDPOINT 和 ALTER ENDPOINT 共有参数的说明,请参阅 CREATE ENDPOINT (Transact-SQL)

在 SQL Server 2008 中,不推荐使用本机 XML Web 服务(SOAP/HTTP 端点)。有关详细信息,请参阅本机 XML Web 服务:不推荐在 SQL Server 2008 中使用

主题链接图标Transact-SQL 语法约定

语法

ALTER ENDPOINT endPointName
[ STATE = { STARTED | STOPPED | DISABLED } ]
[ AS { TCP | HTTP } ( <protocol_specific_items> ) ]
[ FOR { SOAP | TSQL | SERVICE_BROKER | DATABASE_MIRRORING } (
   <language_specific_items>
        ) ]

<AS HTTP_protocol_specific_arguments> ::=
AS HTTP (
  [ [ , ] PATH = 'url' ]
  [ [ , ] PORTS = ( { CLEAR | SSL } [ ,...n ] ) ]
  [ [ , ] SITE = { '*' | '+' | 'webSite' } , ]
  [ [ , ] CLEAR_PORT = clearPort ]
  [ [ , ] SSL_PORT = SSLPort ]
  [ [,] AUTHENTICATION = ( { BASIC | DIGEST | NTLM | KERBEROS | INTEGRATED } [ ,...n ] ) ]
  [ [ , ] AUTH_REALM = { 'realm' | NONE } ]
  [ [ , ] DEFAULT_LOGON_DOMAIN = { 'domain' | NONE } ]
  [ [ , ] COMPRESSION = { ENABLED | DISABLED } ]
)

<AS TCP_protocol_specific_arguments> ::=
AS TCP (
  LISTENER_PORT = listenerPort
  [ [ , ] LISTENER_IP = ALL | ( 4-part-ip ) | ( "ip_address_v6" ) ]
)

<FOR SOAP_language_specific_arguments> ::=
FOR SOAP (
  [ { ADD WEBMETHOD [ 'namespace' .] 'method_alias' 
    (   NAME = 'database.owner.name'
      [ , SCHEMA = {NONE | STANDARD | DEFAULT } ]
      [ , FORMAT = { ALL_RESULTS | ROWSETS_ONLY | NONE} ]
    )  
  } [ ,...n ] 
  ]

  [ { ALTER WEBMETHOD [ 'namespace' .] 'method_alias' 
    (   NAME = 'database.owner.name'
      [ , SCHEMA = {NONE | STANDARD | DEFAULT} ]
      [ , FORMAT = { ALL_RESULTS | ROWSETS_ONLY } ]
    )  
  } [ ,...n] 
]
  [ [ , ] { DROP WEBMETHOD [ 'namespace' .] 'method_alias' } [ ,...n ] ]
  [ [ , ] BATCHES = { ENABLED | DISABLED } ]
  [ [ , ] WSDL = { NONE | DEFAULT | 'sp_name' } ]
  [ [ , ] SESSIONS = { ENABLED | DISABLED } ]
  [ [ , ] LOGIN_TYPE = { MIXED | WINDOWS } ]
  [ [ , ] SESSION_TIMEOUT = timeoutInterval ]
  [ [ , ] DATABASE = { 'database_name' | DEFAULT } ]
  [ [ , ] NAMESPACE = { 'namespace' | DEFAULT } ]
  [ [ , ] SCHEMA = { NONE | STANDARD } ]
  [ [ , ] CHARACTER_SET = { SQL | XML } ]
  [ [ , ] HEADER_LIMIT = int ]
)

<FOR SERVICE_BROKER_language_specific_arguments> ::=
FOR SERVICE_BROKER (
   [ AUTHENTICATION = { 
      WINDOWS [ { NTLM | KERBEROS | NEGOTIATE } ]
      | CERTIFICATE certificate_name 
      | WINDOWS [ { NTLM | KERBEROS | NEGOTIATE } ] CERTIFICATE certificate_name 
      | CERTIFICATE certificate_name WINDOWS [ { NTLM | KERBEROS | NEGOTIATE } ] 
    } ]
   [ , ENCRYPTION = { DISABLED 
       | 
         {{SUPPORTED | REQUIRED } 
       [ ALGORITHM { RC4 | AES | AES RC4 | RC4 AES } ] } 
   ]

  [ , MESSAGE_FORWARDING = {ENABLED | DISABLED} ]
  [ , MESSAGE_FORWARD_SIZE = forwardSize
)

<FOR DATABASE_MIRRORING_language_specific_arguments> ::=
FOR DATABASE_MIRRORING (
   [ AUTHENTICATION = { 
      WINDOWS [ { NTLM | KERBEROS | NEGOTIATE } ]
      | CERTIFICATE certificate_name 
      | WINDOWS [ { NTLM | KERBEROS | NEGOTIATE } ] CERTIFICATE certificate_name 
      | CERTIFICATE certificate_name WINDOWS [ { NTLM | KERBEROS | NEGOTIATE } ] 
    } ]
   [ , ENCRYPTION = { DISABLED 
       | 
         {{SUPPORTED | REQUIRED } 
       [ ALGORITHM { RC4 | AES | AES RC4 | RC4 AES } ] } 
    ] 
   [ , ] ROLE = { WITNESS | PARTNER | ALL }
)

参数

注意注意

以下参数特定于 ALTER ENDPOINT。有关其余参数的说明,请参阅 CREATE ENDPOINT (Transact-SQL)

  • ADD WEBMETHOD
    添加一个新的方法端点。

    重要说明重要提示

    使用 ADD WEBMETHOD 公开方法时,必须确保当同一 HTTP 端点服务于多个 SQL Server 数据库时,不会出现名称重叠。若要避免发生这一问题,请考虑在命名空间路径中添加注册域名 URL。

  • ALTER WEBMETHOD
    更改现有方法端点的定义。

  • AS { TCP | HTTP }
    您不能使用 ALTER ENDPOINT 更改传输协议。

  • AUTHORIZATION login
    AUTHORIZATION 选项在 ALTER ENDPOINT 中不可用。只能在创建端点时分配所有权。

  • DROP WEBMETHOD
    删除现有方法端点。

  • FOR { SOAP | TSQL | SERVICE_BROKER | DATABASE_MIRRORING }
    您不能使用 ALTER ENDPOINT 更改负载类型。

注释

使用 ALTER ENDPOINT 时,请仅指定要更新的参数。除非进行显式更改,否则现有端点的所有属性均保持不变。

不能在用户事务中执行 ENDPOINT DDL 语句。

有关选择用于端点的加密算法的信息,请参阅选择加密算法

注意注意

RC4 是一个相对较弱的算法,而 AES 是一个相对较强的算法。但是 AES 比 RC4 慢得多。如果安全性的优先级高于速度,则建议使用 AES。

权限

用户必须是 sysadmin 固定服务器角色的成员、端点的所有者,或已被授予了 ALTER ANY ENDPOINT 权限。

若要更改现有端点的所有权,必须使用 ALTER AUTHORIZATION 语句。有关详细信息,请参阅 ALTER AUTHORIZATION (Transact-SQL)

有关详细信息,请参阅 GRANT 端点权限 (Transact-SQL)

示例

A. 向现有端点添加新方法

以下示例向以前创建的端点 sql_endpoint 中添加一个新方法。

ALTER ENDPOINT sql_endpoint
FOR SOAP
(
  ADD WEBMETHOD 'SayHello' (name='AdventureWorks.dbo.SayHello')
);

B. 添加以 RAW SOAP 模式运行的新方法

以下示例添加一个以 RAW 模式运行并由 FORMAT=NONE 指定的新 Web 方法 ReportUsageStats,以将存储过程的结果“按原样”传递给 SOAP 客户端。有关详细信息,请参阅 CREATE ENDPOINT (Transact-SQL) 中对 FORMAT 选项的说明。

ALTER ENDPOINT sql_endpoint
FOR SOAP
(
  ADD WEBMETHOD 'ReportUsageStats' (name='myDatabase.dbo.sp_reportserverstats', FORMAT=NONE)
);

更改历史记录

更新的内容

更新了“参数”部分,以便指出不允许的其他操作。