sql-server - 是否可以将此 SWITCH PARTITION 控制选项与 Azure SQL Server 一起使用?
问题描述
我正在做一些 ETL,使用标准的“预加载”分区模式:将数据加载到loading
表的过时分区中,然后将该分区切换到live
表中。
我找到了 SWITCH 命令的这些选项:
ALTER TABLE [myLoadingTable] SWITCH PARTITION @partNum TO [myLiveTable] PARTITION @partNum -- Move the New Data in.
WITH ( WAIT_AT_LOW_PRIORITY ( MAX_DURATION = 1 MINUTES, ABORT_AFTER_WAIT = BLOCKERS ))
这些选项似乎是需要定义的有价值的东西(即使在正常操作期间不需要它们)。
不幸的是,当我尝试运行它时,我得到:
Sql 错误号:11423。
错误消息:用户无权使用 ABORT_AFTER_WAIT = BLOCKERS 选项。
进一步阅读证实这是适当的:(链接)
BLOCKERS
终止当前阻止SWITCH
或联机索引重建 DDL 操作的所有用户事务,以便操作可以继续。需要
ALTER ANY CONNECTION
许可。
但是,当我尝试向GRANT
相关用户授予该权限时,我得到一个错误:
GRANT ALTER ANY CONNECTION TO [myAdfUser]
此版本的 SQL Server 不支持安全类“服务器”。
我正在使用(AFAIK)一个普通的 Azure SQL Server 数据库。
有什么解决方法吗?还是我无法在此数据库上使用这些选项?
解决方案
看起来问题已通过@Larnu 的评论解决,只需将其添加为关闭问题的答案即可。
如果你使用的是 Azure SQL 数据库,那么错误告诉你的是真的。Azure SQL 数据库是所谓的部分包含数据库;像他们的 USER 对象有自己的 Password 并且服务器上的 LOGIN 对象不用于连接。CONNECTION 权限是服务器级别的权限,因此在 Azure SQL 数据库中不受支持。
推荐阅读
- php - 上传图片时在字符串上调用成员函数 move()
- c# - 将 Dapper 与具有 1 个参数的构造函数一起使用时,对象返回为默认值
- python - 如何旋转 labelme 多边形以增加数据集大小?
- r - 在R中选择具有最近日期年份的行
- html - 无法在 div 元素内显示 html 响应
- sql - 通过 case 语句使用插入、删除、更新谓词
- python - 无效级别选择:从 parser.log_levels 中选择
- python - 处理导致属性错误的表达式的最佳方法:循环期间的“NoneType”
- docker - 如何在 SonarQube 容器中通过命令/手动安装插件?
- c# - DataRow:为什么我不能只访问 DateTime 类型列上的 .Date?