我将Mining Structures从2008服务器迁移到2012服务器。当我在2012服务器上的DMX查询中尝试我的CLR UDF(在SQL Server 2008上运行正常)时,我收到此错误:
调用目标抛出了异常。对象引用未设置为对象的实例。
我最初的目标是让GetNodeDescription(...)方法运行。在调试问题时,我可以将问题隔离到我的SQL Server 2012上失败的UDF
[SafeToPrepare(true)]
public static string test()
{
return Context.CurrentMiningModel.Name;
}
我的猜测是CurrentMiningModel
为空,因为以下代码工作正常
[SafeToPrepare(true)]
public static string testUser()
{
return Context.CurrentConnection.User.Name;
}
关于如何解决这个问题的任何想法? 有人可以重现这个吗?
感谢。
扬
更新: 由于“元数据重构”(无论这意味着......),Microsoft的联系人根据需要确认了此行为。但是,website仍有待更新。
答案 0 :(得分:0)
这不是最终的答案,但这是让微软的GetNodeDescription工作(通过明确提供挖掘模型)的解决方法:
[SafeToPrepare(true)]
public static string GetNodeDescription(string MiningModel, string nodeUniqueName)
{
if (Context.ExecuteForPrepare)
{
return string.Empty;
}
return Context.MiningModels[MiningModel].GetNodeFromUniqueName(nodeUniqueName).Description;
}