如何使用存储过程返回视图数据

本文关键字:视图 数据 返回 存储过程 何使用 | 更新日期: 2023-09-27 18:10:51

嗨,朋友们,要求是使用存储过程,我应该返回视图中的所有值。

目前,我们有一个存储过程来返回给定表中的所有值,

CREATE PROCEDURE [dbo].[SuperGas_GetAllEmployees] 
    AS
BEGIN
SELECT [Employee ID]
      ,[First Name]
      ,[Last Name]
      ,[Group]
      ,[Location]
      ,[DOB]
      ,[DOJ]
      ,[Manager]
      ,[Projects]
      ,[Phone]
      ,[Extension]
  FROM [SuperGas].[dbo].[Employee]
END

我们通过连接两个名为ExpenseView的表创建了一个视图,如给定的

CREATE VIEW [dbo].[ExpenseView] AS
SELECT Emp.[Employee ID], Emp.[First Name],Emp.[Last Name],Emp.Manager, Ep.[Expense Type],Ep.[Expense Amount],Ep.[Expense Date]
FROM [Employee Expense] as Ep
FULL JOIN Employee as Emp
ON EP.[Employee ID] = Emp.[Employee ID]

现在,这里的问题与第一个存储过程中的问题一样,如何使用存储过程返回上面视图(Expense(的所有列。我们尝试使用与第一个程序相同的方法;但是,在查询中未标识View ExpenseView。

历史,

从我之前的问题中,我了解到,在存储过程中使用视图是不好的。

然而,我们的应用程序使用以下c#代码,使用存储过程从数据库中获取数据

string spName = "SuperGas_GetAllEmployees";
 DataSet ds = GetDatasetFromAdapter(spName);

改变这一点需要大量的时间和额外的编码资源。因此,有没有任何方法可以返回整个视图(就像我们在给定过程SuperGas_GetAllEmployees for Tables中所做的那样(,这样我就可以使用当前代码本身。

感谢您对的帮助

正在编辑

CREATE PROCEDURE [dbo].[SuperGas_GetAllExpenseView] 
    AS
BEGIN
    SELECT [Employee ID]
      ,[First Name]
      ,[Last Name]
      ,[Manager]
      ,[Expense Type]
      ,[Expense Amount]
      ,[Expense Date]
  FROM [SuperGas].[dbo].[ExpenseView]
END
GO

这里我得到了字段ExpenseType,ExpenseAmount,ExpenseDate和视图名称ExpenseView 的错误

请帮助我

如何使用存储过程返回视图数据

CREATE VIEW [dbo].[ExpenseView] AS

实际上视图是在哪里创建的?在存储过程中使用FROM [SuperGas].[dbo].[ExpenseView] 请确保视图在[SuperGas] 内部