sql连接问题
查询:sql连接问题,sql,sql-server,tsql,Sql,Sql Server,Tsql,查询: UPDATE EMPLOYEE AS E INNER JOIN EMPLOYEE_TEL AS T ON E.EMP_NUMBER = T.EMP_NUMBER SET E.FIRST_NAME = @fname ,E.MID_NAME = @mname ,E.INITIALS =@initilas ,E.SURNAME = @sname ,E.GENDER = @gender ,E.CIVIL_STATUS = @CS
UPDATE EMPLOYEE AS E
INNER JOIN EMPLOYEE_TEL AS T ON E.EMP_NUMBER = T.EMP_NUMBER
SET E.FIRST_NAME = @fname
,E.MID_NAME = @mname
,E.INITIALS =@initilas
,E.SURNAME = @sname
,E.GENDER = @gender
,E.CIVIL_STATUS = @CS
,E.DOB =@datetime
,E.NIC_NUMBER = @nic
,E.ADDRESS_LINE1 =@adline1
,E.ADDRESS_LINE2 = @adline2
,E.ADDRESS_LINE3 = @adline3
,E.EMAIL = @email
,E.DESG_NO =@designo
,E.BASIC_SALARY = @sal
,E.TITLE = @title
,T.TELEPHONE=@tel
WHERE E.EMP_NUMBER=@empnum
我在这个SQL Server中进行了尝试,但出现了一个错误
'Msg 156,15级,状态1,程序SPUPDATEMP,第21行关键字“AS”附近的语法不正确
我找不到错误。这是错误的吗?在执行联接时,不需要使用“as”作为表名的别名 但是,在进行更新时,您不能像尝试做的那样使用别名
UPDATE E
FROM Employee
您要做的是一次更新两个表—在SQL Server中无法这样做—您必须将其拆分为两个单独的更新:
UPDATE EMPLOYEE
SET
FIRST_NAME = @fname,
MID_NAME = @mname,
.....
TITLE = @title
WHERE
EMP_NUMBER = @empnum
UPDATE EMPLOYEE_TEL
SET
TELEPHONE = @tel
WHERE
EMP_NUMBER = @empnum
@我自己也注意到了。更新答案。你真的需要在第二次更新中加入员工吗??我相信如果你只使用
WHERE EMP_NUMBER=@empnum
就足够了,不???@marc_s:你的评论速度比我输入的快多了!:-)也解决了这个问题。好的。非常感谢。我用两条更新语句解决了这个问题,再次感谢大家:)
UPDATE EMPLOYEE
SET
FIRST_NAME = @fname,
MID_NAME = @mname,
.....
TITLE = @title
WHERE
EMP_NUMBER = @empnum
UPDATE EMPLOYEE_TEL
SET
TELEPHONE = @tel
WHERE
EMP_NUMBER = @empnum