C# 使用T-SQL删除Analysis Services数据库

C# 使用T-SQL删除Analysis Services数据库,c#,asp.net,sql-server,tsql,ssas,C#,Asp.net,Sql Server,Tsql,Ssas,是否可以使用T-SQL修改(删除)SSAS数据库 背景: 我们有一个Web应用程序,它构建并部署一个SQL Analysis Services数据库和多维数据集,其结构基于用户选择生成的动态查询。这很好,但是当这些条件被删除时,我们也需要删除数据库。我可以修改我们构建的C#dll,以便在某些条件下执行删除操作,但我们已经有了一个由dll触发的存储过程,用于删除其他db内容,我更愿意添加到此存储过程以删除Analysis Services数据库 据我所知,没有。不可能使用TSQL修改或删除SSAS

是否可以使用T-SQL修改(删除)SSAS数据库

背景:


我们有一个Web应用程序,它构建并部署一个SQL Analysis Services数据库和多维数据集,其结构基于用户选择生成的动态查询。这很好,但是当这些条件被删除时,我们也需要删除数据库。我可以修改我们构建的C#dll,以便在某些条件下执行删除操作,但我们已经有了一个由dll触发的存储过程,用于删除其他db内容,我更愿意添加到此存储过程以删除Analysis Services数据库

据我所知,没有。不可能使用TSQL修改或删除SSAS数据库。使用XMLA是可能的。但是,就我个人而言,我会使用PowerShell来实现这一点:

[Reflection.Assembly]::Load("Microsoft.AnalysisServices, Version=12.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL");

$amo = New-Object Microsoft.AnalysisServices.Server;
$amo.Connect("data source=localhost");

$amo.Databases["yourASdb"].Drop();

您可以在SQL中创建链接服务器以连接到SSAS:

然后使用此处提到的EXECUTE AT语法执行Delete XMLA命令:

虽然我最终在DLL中进行了更改,但此解决方案允许我在SQL中运行“更新”。