有时,根据业务逻辑,我需要在多维数据集中更改“客户”维度的源表。
以前,我使用以下代码更改多维数据集的结构:
MyServerDataSourceView.Schema.Tables["DimCustomers"].ExtendedProperties["QueryDefinition"] = "new query";
MyServerDataSourceView.Update(); // update to new definition
DimCustomer.Process(ProcessType.ProcessAdd, EF);
MyServerDataSourceView.Schema.Tables["DimCustomers"].ExtendedProperties["QueryDefinition"] = "old regularquery";
MyServerDataSourceView.Update(); // revert back to old definition
但这并不可信。有时它不会还原回查询定义。
Visual Studio显示可以使用 queryBinding 。
我正在尝试这样的代码:
string queryAdd = "SELECT [a],[b],[c] FROM ase.newtable";
QueryBinding queryBinding = new QueryBinding();
queryBinding.QueryDefinition = queryAdd;
DimCustomer.Process(ProcessType.ProcessAdd, queryBinding);
并得到下面的错误消息,说明不多:
警告:0x80019002处理时添加客户维度-顺序 容器:SSIS警告代码DTS_W_MAXIMUMERRORCOUNTREACHED。的 执行方法成功,但引发的错误数(1) 达到允许的最大值(1);导致失败。发生这种情况 当错误数量达到中指定的数量时 MaximumErrorCount。更改MaximumErrorCount或修复错误。
我正在尝试研究Microsoft documentation,但没有找到任何示例或明确的解释。