tsql - 从存储过程处理表格多维数据集
问题描述
我有一个存储过程,它填充数据库中的几个表,这是表格 SSAS 多维数据集的数据源。当我完成加载表时,我想将多维数据集作为存储过程的最后一步进行处理。我找到了这段代码:
DECLARE @XMLA XML = '
<Batch xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
<Process>
<Object>
<DatabaseID>' + @Database + '</DatabaseID>
</Object>
<Type>ProcessFull</Type>
<WriteBackTableCreation>UseExisting</WriteBackTableCreation>
</Process>
</Batch>
';
DECLARE @Command VARCHAR(MAX) = CONVERT(VARCHAR(MAX), @XMLA);
EXEC (@Command) AT SSAS;
它接受数据库名称,但我不知道如何让它在特定服务器或 SSAS 实例上运行。我的存储过程和多维数据集位于 Sql 服务器的不同命名实例上。有谁知道如何在 xmla 中嵌入服务器/实例名称或在指定实例上运行 xmla?
提前致谢。
解决方案
我发现关键是使用链接服务器(和 TMSL,感谢 Mitch Wheat):
DECLARE @TMSL VARCHAR(MAX) = '{
"refresh": {
"type": "full",
"objects": [
{
"database": ' + @DataBaseName + '
}
]
}
}';
EXEC (@TMSL) AT SSASTABULAR; -- linked server name
SSSTABULAR 是指向我的 ssas 多维数据集服务器实例的链接服务器。
推荐阅读
- sql - 强制 5 分钟间隔到日期时间 SQL Server 2012
- swift - Swift 从服务器到使用
- c++ - 减少用函数值定义的变量的值
- wordpress - WORDPRESS 用户通过 ID 访问特定联系表格 CFDB7
- amazon-s3 - 汇合平台 S3SinkConnector 不工作
- javascript - 是否可以将数据附加到 Firebase Analytics page_view 事件?
- python - 如何将项目附加到类对象的属性?
- xcode - 在 XCTest UI 测试中单击 NSToolbarItem
- r - 结合两个数据框,相似的行,相似的列,除了一个列具有不同的值
- html - CSS Grid - 在中心上方对齐自我