![](/img/trans.png)
[英]User Defined Functions - Northwind Database - Employee_Name function
[英]user-Defined SQL Function gives error “Invalid column name 'Employee_Name'.”
我正在做某事,但無法正常工作。 我正在嘗試創建一個名為Employee_Name的用戶定義函數。 傳遞一個員工ID作為參數,返回其ID與傳遞給用戶定義函數的ID匹配的員工的名字,姓氏和電話號碼創建一個使用該函數並返回帶有ID的員工信息的查詢之5。但是為了完成職能員工姓名,我無法使用它。 我不斷收到此錯誤:
Msg 207, Level 16, State 1, Procedure Employee_Name, Line 10
Invalid column name 'Employee_Name'.
Msg 208, Level 16, State 1, Line 2
Invalid object name 'Employee_name'.
代碼如下:
CREATE FUNCTION Employee_Name
(
@EmployeeID int
)
RETURNS TABLE
AS
RETURN
(
SELECT * FROM Employees
WHERE Employee_Name = @EmployeeId
)
GO
SELECT * FROM Employee_name (1)
現在,要獲得“名字,姓氏和電話”的回報,我就這樣選擇員工編號,就像這樣
Select
FirstName,
LastName,
PhoneNumber
From EmployeeId
或類似的東西。現在讓員工的ID為5,我將使用計數還是做一個= 5的事情? 我不確定是否仍然感到困惑。
編輯:這是我再次:
CREATE FUNCTION Employee_Name
(
@EmployeeID int
)
RETURNS TABLE
AS
RETURN
(
SELECT FirstName,LastName,HomePhone
FROM Employees
WHERE Employee_Name = @EmployeeId
)
GO
WHERE Employee_Name = @EmployeeId <<<-
應該是
WHERE Employee_Id = @EmployeeId
? (或您的ID列命名的任何名稱)。
這可能是因為函數與列具有相同的名稱。
嘗試這個:
SELECT * FROM Employees
WHERE Employees.Employee_Name = @EmployeeId
更確切地說
SELECT * FROM Employees
WHERE Employees.EmployeeId = @EmployeeId
這行:
WHERE Employee_Name = @EmployeeId
沒有道理。 當然你的意思是
WHERE Employees.EmployeeId = @EmployeeId
?
而這個查詢:
Select
FirstName,
LastName,
PhoneNumber
From EmployeeId
應該肯定是這樣的:
SELECT FirstName,
LastName,
PhoneNumber
FROM Employees
WHERE EmployeeId = ...
?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.