gpt4 book ai didi

sql - SSRS 2008 不会从存储过程返回正确的数据集

转载 作者:行者123 更新时间:2023-12-02 03:36:50 25 4
gpt4 key购买 nike

我有一个过程,它有多个查询,这些查询根据使用的参数运行。

If Reportname = 'Foo'
Begin
Select Forename, Surname, Jobtitle, Gender from Staff where X = y
End

If ReportName = 'Bar'
Begin
Select EnrolmentID, StudentID, EnrolmentStartDate, EnrollmentExpectedEndDate, Status from Enrolment where y = Z
End

如果我在 SSMS 中运行它,它会返回正确的记录和列。与在 SSRS 中一样,当我选择过程并设置参数时,它将可用列定义为过程的第一个选择语句中包含的列。

此过程将用于各种不同的报告和后端处理,理想情况下我不想将代码加倍。

有没有人对如何让 SSRS 检测所应用的正确上下文有任何建议?

我知道我可以将一些核心逻辑更改为表值函数,该函数返回一些适用于所有情况的通用数据。

谢谢

此外,还有人有说服我的老板从 ADO Classic 升级到 ADO.Net Entity Framework 的技巧吗?我怀念 EF 的灵 active ,尤其是当我们在存储过程中执行所有操作时,包括返回单个值,这让我抓狂。

最佳答案

我会创建 2 个 SP,每个 SP 都为您的 2 个案例返回数据,然后您的“外观”SP 设置为报告的来源可能如下所示:

CREATE TABLE #ReportTable(col1 ID, col2 varchar(80), etc)
IF Reportname = 'Foo'
Begin
INSERT #ReportTable(col1, col2, ...)
EXEC dbo.GetDataForReport1 '7131', 25
End

IF ReportName = 'Bar'
Begin
INSERT #ReportTable (col1, col2, ...)
EXEC dbo.GetDataForReport2 '7131', 25
End

SELECT col1, col2, ...
FROM #ReportTable

关于sql - SSRS 2008 不会从存储过程返回正确的数据集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22813354/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com