ALTER function [dbo].[getEmployeeID](@ID int) returns table
as
begin
return (
select * from [dbo].[gtEmployeeName](2)
select * from Employees where EmployeeID = @ID)
end
此处[dbo].[gtEmployeeName]
是我要调用的另一个函数。
我收到错误,我们可以打电话还是有语法问题?
消息156,级别15,状态1,过程getEmployeeID,第6行
关键字“select”附近的语法不正确。
消息102,级别15,状态1,过程getEmployeeID,行6 ')'附近的语法不正确。
由于 王子
答案 0 :(得分:6)
如果[dbo].[gtEmployeeName]
返回标量,您可能正在寻找
ALTER function [dbo].[getEmployeeID](@ID int) returns table
as
begin
return (
select *, [dbo].[gtEmployeeName](2) as EmpName from Employees where EmployeeID=@ID)
end
如果[dbo].[gtEmployeeName]
返回表格,您可能正在寻找
ALTER function [dbo].[getEmployeeID](@ID int) returns table
as
begin
return (
select * from [dbo].[gtEmployeeName](2) EN
inner join Employees E on EN.EmployeeID = E.EmployeeID
where EmployeeID=@ID)
end
如果您需要,请将连接更新为外部。同时更新join condition
(该示例假定gtEmployeeName
返回的表具有列EmployeeID
,并且可用于加入Employees。
答案 1 :(得分:3)
是的,您可以在函数内调用函数。
实际上,你可以在函数内部调用当前函数,以产生循环。
你得到什么错误?您的错误很可能与其他内容有关