Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
sql连接问题_Sql_Sql Server_Tsql - Fatal编程技术网

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