sys.sp_rda_reauthorize_db (Transact-SQL)
适用于: SQL Server 2016 (13.x) 及更高版本
还原为 Stretch 和远程数据库启用的本地数据库之间的经过身份验证的连接。
重要
SQL Server 2022 (16.x) 和 Azure SQL 数据库中已弃用 Stretch Database。 在数据库引擎的未来版本中将删除此功能。 请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。
语法
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_databasename 为 sysname。
返回代码值
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;