我正在使用标准"预加载";分区模式:将数据加载到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不支持安全类"server"。
我正在使用(AFAIK(一个普通的Azure SQL Server数据库。
对此有什么解决办法吗还是我无法在此数据库上使用这些选项?
看起来问题已经被@Larnu的评论解决了,只需将其添加为答案即可结束问题。
如果您正在使用Azure SQL数据库,那么错误告诉您的是真的。Azure SQL数据库是所谓的部分包含数据库;诸如USER对象有自己的Password和服务器上的LOGIN对象之类的对象不用于连接。CONNECTION权限是服务器级别的权限,因此在Azure SQL数据库中不受支持。