如何获取SQL Server Analysis Services数据源视图最后架构更新值?
获取SQL Server Analysis Services中数据源视图的最后架构更新值
绝对有办法拿到这个值!你之前用的$System.MDSCHEMA_CUBES聚焦于多维数据集的度量值、维度这类元数据,确实不会返回数据源视图相关的属性。这里给你两个简单有效的方案:
方案1:用专用DMV直接查询
SSAS提供了专门针对数据源视图的动态管理视图(DMV)——$System.MDSCHEMA_DATA_SOURCE_VIEWS,执行下面的查询就能直接获取你需要的最后架构更新时间:
SELECT CATALOG_NAME AS DatabaseName, DATA_SOURCE_VIEW_NAME AS DSVName, LAST_SCHEMA_UPDATE AS LastSchemaUpdateTime FROM $System.MDSCHEMA_DATA_SOURCE_VIEWS
返回结果里的LAST_SCHEMA_UPDATE字段,完全对应你在数据源视图属性对话框里看到的「最后架构更新」值。你可以根据需要添加筛选条件,比如指定CATALOG_NAME来缩小到特定数据库。
方案2:通过XMLA获取完整元数据
如果需要更详尽的数据源视图元数据,或者要通过脚本自动化提取,XMLA查询是个不错的选择:
<Discover xmlns="urn:schemas-microsoft-com:xml-analysis"> <RequestType>MDSCHEMA_DATA_SOURCE_VIEWS</RequestType> <Restrictions> <RestrictionList> <!-- 替换成你的目标SSAS数据库名称 --> <CATALOG_NAME>YourSSASDatabase</CATALOG_NAME> </RestrictionList> </Restrictions> <Properties /> </Discover>
执行这个XMLA请求后,返回的结果集中每个数据源视图对应的节点里,都会包含<LAST_SCHEMA_UPDATE>元素,其值就是属性对话框中的最后架构更新时间。
补充说明:不管是传统多维模型(Multidimensional)还是表格模型(Tabular)的SSAS实例,这两种方法都适用,表格模型里的数据源视图相关元数据同样会被正确返回。
内容的提问来源于stack exchange,提问作者Willie P




