【发布时间】:2014-03-11 21:54:11
【问题描述】:
我正在处理一项构建用户定义函数的任务。当我运行这个选择语句时
SELECT *
FROM DPSupervisorLookup('112233')
它给了我这个错误
消息 8152,级别 16,状态 14,第 1 行字符串或二进制数据将是 被截断。
我知道这个特定的员工 ID 不在数据库中,但是当我运行它时,我仍然遇到同样的错误。这是我的代码,以防万一我在某个地方出错。
Create Function DPSupervisorLookUp (@EmployeeID int)
Returns @Supervisors Table
(SupervisorEmployeeID Int,
SupervisorLastName Varchar(20),
SupervisorFirstName Varchar (20),
SupervisorJobTitle Varchar(20))
As
begin
insert @Supervisors
select Distinct E2.EmployeeID as SupervisorEmployeeID, e2.LastName as SupervisorLastName, E2.Firstname as SupervidorFirstName, E2.JobTitle as SupervisorJobTitle
from Employee e1
left outer join Employee e2 on e1.Supervisor = e2.EmployeeID
Return
end
【问题讨论】:
-
显示
Employee表定义。还有为什么你将 int 作为 varchar 传递,你在哪里使用它? -
两个问题。 1.为什么你传入EmployeeID而不使用它? 2. 为什么要给函数传入一个字符串值?
-
感谢大家的帮助!
标签: mysql sql sql-server tsql