我有一个存储过程,我在SSRS中使用它来获取DATA SET。它有一些列名包含“(”,“)”,“$”等。我可以在sql server中运行SP。但刷新字段给出错误,因为“查询包含多个未命名或重复的字段名称”。我确信没有这样的专栏。
答案 0 :(得分:3)
问题归因于列[INCUR COST$]
和[INCUR COST£]
(至少基于您提供的详细信息)。
SSRS不允许使用,
$
和£
等特殊字符作为其数据集列,但它会很乐意尝试将任何查询列转换为可接受的名称,方法是替换为{ {1}}尽可能。
在您的情况下,_
和[INCUR COST$]
都转换为[INCUR COST£]
,因此您的错误包含重复的字段名称。
要创建简单测试,您可以使用以下查询创建数据集:
INCUR_COST_
SSRS无误地执行此操作。您将收到错误:
select [Incur Cost$] = 1
在此阶段,您可以选择更新名称:
根据需要进行更新。
作为一种解决方法,您可以在SP中创建更多标准化名称(这实际上是最佳实践选项),或者您可以手动将字段添加到BIDS中的数据集,您可以根据自己的喜好指定数据集名称,同时考虑到SSRS命名限制。