0

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

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

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]

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

历史,

从我之前的问题中我了解到,将视图与存储过程一起使用并不好。

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

string spName = "SuperGas_GetAllEmployees";

 DataSet ds = GetDatasetFromAdapter(spName);

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

谢谢你的帮助

编辑……

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

在这里,我收到字段费用类型、费用金额、费用日期和视图名称 ExpenseView 的错误

请帮我

4

1 回答 1

2
CREATE VIEW [dbo].[ExpenseView] AS

Actually where the view is created? In your stored procedure you use FROM [SuperGas].[dbo].[ExpenseView] Could you please ensure that the view is inside of [SuperGas]

于 2011-10-11T10:15:25.640 回答