我有兩個表..UPDATE查詢涉及多個表
人:
empid(primary key)
firstname
lastname
email
詳情:
Did(primary key)
salary
designation
empid
現在我需要更新其名稱是「ABC員工的電子郵件'AND指定爲Manager(假設有多個員工姓名abc,因此需要檢查指定) 我正在使用sql server 2008
我有兩個表..UPDATE查詢涉及多個表
人:
empid(primary key)
firstname
lastname
email
詳情:
Did(primary key)
salary
designation
empid
現在我需要更新其名稱是「ABC員工的電子郵件'AND指定爲Manager(假設有多個員工姓名abc,因此需要檢查指定) 我正在使用sql server 2008
UPDATE p
SET email = '[email protected]'
FROM dbo.Persons AS p
INNER JOIN dbo.Details AS d
ON p.empid = d.empid
WHERE p.firstname = 'abc'
AND d.Designation = 'manager';
我不知道你可以使用這樣的別名。對我來說,總是覺得很奇怪,你需要指定表格兩次。我來自Access,更新語句從不具有「FROM」子句;你只需'更新人員內部聯接詳細信息ON Persons.PersonID = Detail.PersonID SET email ='us @ them.com'' –
SQL Server語法與Access很多不同。 –
試試這個:
UPDATE
[Persons]
SET
[Persons].[email]='###@###.###'
FROM
[Persons]
INNER JOIN [Persons].[empid]
ON [Details].[empid] = [Persons].[empid]
WHERE
[Persons].[firstname]='abc' AND
[Details].[designation]='Manager'
'INNER JOIN [Persons]。[empid]'?除了錯誤和不使用表別名,這與我的答案有何不同? –
@AaronBertrand至少他改變了格式,電子郵件字符串和大寫'經理' – swasheck
的可能重複(http://stackoverflow.com/questions/1604091/update-a-table-using- [更新使用JOIN在SQL Server中的表?] join-in-sql-server) –