2011-11-13 54 views
0

我正在嘗試創建名爲Employee_Name的用戶定義函數。傳遞一個員工ID作爲參數。使用用戶定義函數

這是我到目前爲止有:

Create function Employee_name (
@EmployeeID int 
) 
Return Table 
as 
Return(
     Select * From Employees 
    Where Employee_name = @EmplyeeId) 
go 
SELECT * FROM Employee_name 

但我沒有想到,我這樣做的權利,因爲在返回表是標誌用紅色。這意味着一個錯誤。我仍然在學習這一點,它有點讓我困惑。如果退貨表應該只是一個回報,我很沮喪。

回答

1

您需要的員工ID傳遞到您的用戶自定義函數

SELECT * FROM Employee_name (1) 

而且它應該是RETURNS TABLE。所以

CREATE FUNCTION Employee_name 
(
    @EmployeeID int 
) 
RETURNS TABLE 
AS 
RETURN 
(
    SELECT * FROM Employees 
    WHERE Employee_name = @EmployeeID 
) 
GO 

SELECT * FROM Employee_name (1) 

你可能有你的函數的名稱和字段的Employees表雖然名稱(同時出現被稱爲Employee_name)之間的一些命名衝突

1

將其更改爲:

Create function Employee_name (
@EmployeeID int 
) 
Returns Table 
as 
Return(
     Select * From Employees 
    Where Employee_name = @EmplyeeId) 
go 

和代碼:

select * from Employee_name (1) 
2

Return Table應該是Returns Table