sys.sp_rda_set_query_mode (Transact-SQL)
适用于: SQL Server 2016 (13.x) 及更高版本
指定针对当前已启用 Stretch 的数据库及其表的查询是否同时返回本地和远程数据(默认值),还是仅返回本地数据。
重要
SQL Server 2022 (16.x) 和 Azure SQL 数据库中已弃用 Stretch Database。 在数据库引擎的未来版本中将删除此功能。 请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。
语法
sp_rda_set_query_mode
[ @mode = ] @mode
[ , [ @force = ] @force ]
[ ; ]
参数
[ @mode = ] @mode
以下值之一:
DISABLED
针对已启用 Stretch 的表的所有查询都失败。LOCAL_ONLY
针对已启用 Stretch 的表的查询仅返回本地数据。LOCAL_AND_REMOTE
针对已启用 Stretch 的表的查询同时返回本地数据和远程数据。 这是默认行为。
[ @force = ] @force
如果要在不验证的情况下更改查询模式,则可以设置为 1 的可选 位 值。
返回代码值
0
(成功)或 > 0
(失败)。
权限
需要 db_owner 权限。
注解
以下扩展存储过程还为已启用 Stretch 的数据库设置查询模式。
sp_rda_deauthorize_db
:运行
sp_rda_deauthorize_db
后,针对已启用 Stretch 的数据库和表的所有查询都会失败。 也就是说,查询模式设置为DISABLED
。 若要退出此模式,请执行以下操作之一。运行 sys.sp_rda_reauthorize_db (Transact-SQL) 以重新连接到远程 Azure 数据库。 此操作会自动将查询模式重置为
LOCAL_AND_REMOTE
,这是 Stretch Database 的默认行为。 也就是说,查询返回本地和远程数据的结果。使用
LOCAL_ONLY
参数运行sys.sp_rda_set_query_mode,让查询仅针对本地数据继续运行。
sp_rda_reauthorize_db
:运行 sys.sp_rda_reauthorize_db (Transact-SQL) 重新连接到远程 Azure 数据库时,此操作会自动将查询模式重置为
LOCAL_AND_REMOTE
,这是 Stretch Database 的默认行为。 也就是说,查询返回本地和远程数据的结果。