sp_get_redirected_publisher (Transact-SQL)

适用于:SQL Server

副本 (replica)代理用于查询分发服务器以确定原始发布服务器是否已重定向。

Transact-SQL 语法约定

语法

sp_get_redirected_publisher
    [ @original_publisher = ] N'original_publisher'
    , [ @publisher_db = ] N'publisher_db'
    [ , [ @bypass_publisher_validation = ] bypass_publisher_validation ]
    [ , [ @multi_subnet_failover = ] multi_subnet_failover ]
[ ; ]

参数

[ @original_publisher = ] N'original_publisher'

最初发布数据库的 SQL Server 实例的名称。 @original_publishersysname,没有默认值。

[ @publisher_db = ] N'publisher_db'

要发布的数据库的名称。 @publisher_dbsysname,无默认值。

[ @bypass_publisher_validation = ] bypass_publisher_validation

用于绕过重定向的发布服务器的验证。 如果 0执行验证,则执行验证。 如果未 1执行验证,则执行验证。 @bypass_publisher_validation,默认值为 0.

[ @multi_subnet_failover = ] multi_subnet_failover

适用于: SQL Server 2022 (16.x) CU 10 及更高版本

用于传递用于创建动态链接服务器的信息。 如果 0不是使用 MultiSubnetFailover 参数创建动态链接服务器。 如果 1为动态链接服务器,则使用参数创建 MultiSubnetFailover1@multi_subnet_failover为,默认值为 0.

返回代码值

0(成功)或 1(失败)。

结果集

列名称 数据类型 描述
redirected_publisher sysname 重定向后的发布服务器的名称。
error_number int 验证错误的错误号。
error_severity int 验证错误的严重性。
error_message nvarchar(4000) 验证错误消息的文本。

备注

redirected_publisher 返回当前发布者名称。 如果发布服务器和发布数据库未使用sp_redirect_publisher重定向,则返回 NULL

如果未请求验证,或者发布服务器和发布数据库不存在条目, error_numbererror_severity 返回 0 并返回并 error_message 返回 NULL

如果请求验证,则会调用验证存储过程 sp_validate_redirected_publisher(Transact-SQL), 以验证重定向的目标是否适合发布数据库。 如果验证成功, sp_get_redirected_publisher 则返回重定向的发布者名称、 0error_numbererror_severityNULLerror_message 列中的名称。

如果验证请求失败,则会返回重定向的发布服务器的名称以及错误信息。

权限

调用方必须是 sysadmin 固定服务器角色的成员分发数据库的db_owner固定数据库角色,或者是与发布服务器数据库关联的已定义发布的发布访问列表的成员。