【发布时间】:2008-12-03 22:54:42
【问题描述】:
来自同事的一个我无法弄清楚的谜题......
update btd.dbo.tblpayroll
set empname = ( select b.Legal_Name
from ( SELECT Legal_Name,
Employee_ID
FROM Com.dbo.Workers
WHERE isnumeric(Employee_ID) = 1
) b
where b.Employee_ID = empnum
and b.Legal_name is not NULL
)
where empname is NULL
消息 245,第 16 级,状态 1,第 1 行 将 varchar 值“N0007”转换为数据类型 int 时转换失败。表别名 b 实际上是一个视图。
值“N0007”在 Workers 表中。我不明白为什么它没有从正在加入的结果中过滤出来。
编辑:
事实上,别名确实返回了正确的行 - 所以 isNumeric 正在完成这项工作。
【问题讨论】:
标签: sql sql-server sql-server-2005 tsql