【发布时间】:2021-05-19 08:04:09
【问题描述】:
更新 - 我已经弄清楚如何使用代码优先迁移来添加存储过程。 '全部'我现在想知道如何应用SELECT * FROM _tempTable1_ UNION SELECT * FROM _tempTable2,然后输出它。我正在考虑实现第三个存储过程,但我不确定这是否是正确的做法?非常感谢帮助:)
我有一个连接到我的 ASP.NET MVC 应用程序的表,并且我在 SQL Server 中创建了两个存储过程。是否有可能以某种方式实现这些存储过程,以便在输出表时,可以将其分组到这些存储过程中?
MetBasicCriteria
ALTER PROCEDURE [dbo].[MetBasicCriteria]
-- Add the parameters for the stored procedure here
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
SELECT *
FROM dbo.Applications
WHERE NorwegianCitizen=1
AND CurrentlyInUni=1
AND Norwegian=1
AND English=1
END
MetMoreCriteria
ALTER PROCEDURE [dbo].[MetMoreCriteria]
-- Add the parameters for the stored procedure here
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
--EXEC [dbo.MetBasicCriteria]
SELECT *
FROM dbo.Applications
WHERE (Dutch=1
OR OtherCitizenships='Dutch'
OR (Course_bachelor='Political Science' OR Course_bachelor='Economy' OR Course_bachelor='International Relations')
OR (Grade_Bachelor='a' OR Grade_Bachelor='A' OR Grade_Bachelor='b' OR Grade_Bachelor='B'))
--AND MetBasicCriteria=1
END
换句话说 --> 我可以使用 3 个不同的存储过程,将这 3 个的结果保存到不同的临时表中,然后使用 UNION ALL 将它们组合成 1 个临时表桌子?
提前致谢
【问题讨论】:
-
你在使用实体框架吗?
-
是的,我是,带有 EF 6 的 ASP.NET MVC
-
代码优先还是数据库优先?
-
您的第二个程序执行第一个程序。如果您想要第二个过程的 single 结果集,则需要将第一个过程的结果集插入到某种类型的表中,然后将该表与后面的查询的结果集进行逻辑连接第二。您可以简单地将其插入同一个表中。您可以使用 UNION ALL(或 UNION 取决于您的目标)“加入”它们。如果需要,您也可以加入行。想想重复。考虑将逻辑组合成 2 个过程。
-
代码优先迁移
标签: asp.net sql-server asp.net-mvc stored-procedures