簡體   English   中英

用戶定義的SQL函數給出錯誤“無效的列名'Employee_Name'。”

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM