проблема с SQL соединением - PullRequest
0 голосов
/ 03 февраля 2011

Запрос:

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, но он выдал ошибку

'Сообщение 156, уровень 15, состояние 1, процедура SPUPDATEEMP, строка 21
Неверный синтаксис рядом с ключевым словом «AS».

Я не могу найти ошибку. Это неправильно?

Ответы [ 3 ]

2 голосов
/ 03 февраля 2011
UPDATE EMPLLOYEE
   SET FIRST_NAME = @fname
      ,MID_NAME = @mname
      ,INITIALS =@initilas
      ,SURNAME = @sname
      ,GENDER = @gender
      ,CIVIL_STATUS = @CS
      ,DOB =@datetime 
      ,NIC_NUMBER = @nic
      ,ADDRESS_LINE1 =@adline1
      ,ADDRESS_LINE2 = @adline2
      ,ADDRESS_LINE3 = @adline3
      ,EMAIL = @email
      ,DESG_NO =@designo
      ,BASIC_SALARY = @sal
      ,TITLE = @title
WHERE EMP_NUMBER=@empnum

UPDATE EMPLOYEE_TEL
    SET TELEPHONE=@tel
    WHERE EMP_NUMBER=@empnum
0 голосов
/ 03 февраля 2011

То, что вы пытаетесь сделать, это обновить две таблицы одновременно - вы не можете сделать это в 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
0 голосов
/ 03 февраля 2011

При выполнении JOINS вам не нужно использовать «as» для псевдонима таблицы.

Однако, делая UPDATES, вы не можете использовать псевдоним для имени, которое вы пытаетесь сделать.

UPDATE E
FROM Employee
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...