こんにちは友人の要件は、ストアドプロシージャを使用して、ビューからすべての値を返す必要があるということです。
現在、指定されたとおりにテーブルからすべての値を返すストアドプロシージャがあります。
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という名前の2つのテーブルを、次のように結合してビューを作成しました。
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]
ここでの質問は、最初のストアドプロシージャの場合と同様ですが、ストアドプロシージャを使用して、上記のビュー(経費)のすべての列を返すにはどうすればよいですか。最初の手順と同じ方法を使用してみました。ただし、ViewExpenseViewはクエリで識別されません。
歴史、
以前の質問からわかったのですが、ストアドプロシージャでビューを使用するのはよくありません。
ただし、アプリケーションは以下の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
ここで、フィールドExpense Type、Expense Amount、Expense Date、およびビュー名ExpenseViewでエラーが発生します。
私を助けてください