将SSRS 2008报表/报表模型迁移至SSRS 2019的疑问
SSRS 2008报表模型迁SSRS 2019实操要点
1. 定位报表列与数据库字段的映射关系
直接用文本编辑器(比如VS Code)打开SMDL文件,找到<Entity>节点下的<Attribute>标签:
Name属性对应报表中显示的列名QueryDefinition子节点里的DbColumn属性就是数据库实际字段名
示例片段:
<Attribute Name="CustomerName"> <QueryDefinition> <ColumnReference DbColumn="CUST_NAME" DbSchema="dbo" DbTable="Customers"/> </QueryDefinition> </Attribute>
2. 识别SMDL中数据集关联的查询/存储过程
在SMDL的<Model>节点下找<DataSourceView>节点:
- 若绑定存储过程,会有
<StoredProcedureCall>标签,其中DbName属性就是存储过程名称 - 若为自定义SQL查询,
<Query>节点内的<CommandText>标签里就是完整的SQL语句
存储过程示例:
<StoredProcedureCall Name="GetSalesData"> <StoredProcedureReference DbSchema="dbo" DbName="sp_GetMonthlySales"/> </StoredProcedureCall>
自定义查询示例:
<Query> <CommandText>SELECT OrderID, OrderDate FROM dbo.Orders</CommandText> </Query>
3. 迁移后数据集的填充处理
迁移后报表数据集仍保留SMDL格式XML时,手动替换即可:
- 打开SSRS 2019报表设计器,进入数据集属性窗口
- 删除原SMDL格式内容,替换为提取到的SQL语句,或用
EXEC dbo.sp_YourProcedure调用对应存储过程 - 重新将报表字段与新数据集的列做映射,确保字段名称匹配
如果原模型逻辑复杂,可把SMDL中的查询逻辑封装为新的存储过程,直接调用该存储过程填充数据集
内容的提问来源于stack exchange,提问作者Rob Ainscough
相关产品推荐
相关产品推荐

