SSAS : 使用.NET为SSAS编写自定义程序集(三)
这一篇我们来看看如何在存储过程中访问当前的上下文,例如当前在哪个数据库,哪个服务器等等
首先,需要添加引用
需要注意,如果你的机器安装了多个SQL Server的版本,一定要找到正确的目录.下面这个目录是SQL Server 2005的
修改代码如下
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.AnalysisServices.AdomdServer;
namespace SSASStoreProcedure
{
public partial class StoredProcedures
{
/// <summary>
/// 这个方法用来添加一个前缀
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
public static string AddPrefix(string prefix,string input)
{
return string.Format("{0}:{1}", prefix, input);
}
public static string AddServerName(string input)
{
string servername = Context.CurrentServerID;
return string.Format("{0}:{1}", servername, input);
}
}
}
然后,部署程序集,用以下脚本测试
WITH MEMBER [Measures].[TestMember]
AS
SSASStoreProcedure.AddServerName([Measures].[Total Sales Amount]/[Measures].[Total Product Cost])
SELECT [Customer].[Gender].Members ON 0,
{[Customer].[Education].CHILDREN}*{[TestMember],[Measures].[Total Sales Amount],[Measures].[Total Product Cost]} ON 1
FROM [Analysis Services Tutorial]
需要注意的是:
这个Context对象,在SQL Server 2008中有些改进,包含了CurrentConnection对象和Server对象.
Context 类具有两个新增属性:
- Server,对新增服务器对象的只读引用。
- CurrentConnection,对新增 AdomdConnection 对象的只读引用。
- 这里可以得到当前用户的信息,那样就更强大了
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人