使用用户定义的函数

时间:2011-11-13 13:33:09

标签: sql sql-server

我正在尝试创建一个名为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

但我不认为我这样做是正确的,因为返回表标有红色。这意味着错误。我还在学习这个,这对我来说有点困惑。我想知道返回表是否只是一个回报。

3 个答案:

答案 0 :(得分:2)

Return Table应为Returns Table

答案 1 :(得分: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

答案 2 :(得分:1)

将其更改为:

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

并在代码中:

select * from Employee_name (1)