sys.sp_rda_reauthorize_db (Transact-SQL)

适用于:SQL Server 2016 (13.x) 及更高版本

还原为 Stretch 和远程数据库启用的本地数据库之间的经过身份验证的连接。

重要

SQL Server 2022 (16.x) 和 Azure SQL 数据库中已弃用 Stretch Database。 在数据库引擎的未来版本中将删除此功能。 请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。

Transact-SQL 语法约定

语法

sp_rda_reauthorize_db
    [ @credential = ] credential
      , [ @with_copy = ] with_copy
    [ , [ @azure_servername = ] azure_servername
      , [ @azure_databasename = ] azure_databasename ]
[ ; ]

参数

[ @credential = ] N'credential'

与启用本地 Stretch 的数据库关联的数据库作用域凭据。 @credential为 sysname

[ @with_copy = ] with_copy

指定是否创建远程数据的副本并连接到副本(建议)。 @with_copy位

[ @azure_servername = ] azure_servername

指定包含远程数据的 Azure 服务器的名称。 @azure_servername为 sysname

[ @azure_databasename = ] azure_databasename

指定包含远程数据的 Azure 数据库的名称。 @azure_databasenamesysname

返回代码值

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

权限

需要 db_owner 权限。

注解

运行 sys.sp_rda_reauthorize_db (Transact-SQL) 重新连接到远程 Azure 数据库时,此操作会自动将查询模式重置为 LOCAL_AND_REMOTE,这是 Stretch Database 的默认行为。 也就是说,查询返回本地和远程数据的结果。

示例

以下示例还原为 Stretch 和远程数据库启用的本地数据库之间的经过身份验证的连接。 它创建远程数据的副本(建议),并连接到新副本。

DECLARE @credentialName NVARCHAR(128);

SET @credentialName = N'<existing_database_scoped_credential_name>';

EXEC sp_rda_reauthorize_db
    @credential = @credentialName,
    @with_copy = 1;