Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.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 server 2008 更新涉及多个表的查询_Sql Server 2008 - Fatal编程技术网

Sql server 2008 更新涉及多个表的查询

Sql server 2008 更新涉及多个表的查询,sql-server-2008,Sql Server 2008,我有两张桌子 人员: empid(primary key) firstname lastname email 详情: Did(primary key) salary designation empid 现在我需要更新名为“abc”且指定为经理的员工的电子邮件。假设有多个员工指定abc,因此需要检查指定 我正在使用sql server 2008请尝试以下操作: UPDATE p SET email = 'newemail@wherever.com' FR

我有两张桌子

人员:

  empid(primary key)
  firstname
  lastname
  email
详情:

  Did(primary key)
  salary
  designation
  empid
现在我需要更新名为“abc”且指定为经理的员工的电子邮件。假设有多个员工指定abc,因此需要检查指定 我正在使用sql server 2008

请尝试以下操作:

UPDATE p
  SET email = 'newemail@wherever.com'
  FROM dbo.Persons AS p
  INNER JOIN dbo.Details AS d
  ON p.empid = d.empid
  WHERE p.firstname = 'abc'
  AND d.Designation = 'manager';
UPDATE 
  [Persons] 
SET 
  [Persons].[email]='###@###.###'
FROM 
  [Persons] 
  INNER JOIN [Persons].[empid] 
  ON [Details].[empid] = [Persons].[empid] 
WHERE 
  [Persons].[firstname]='abc' AND 
  [Details].[designation]='Manager'
试试这个:

UPDATE 
  [Persons] 
SET 
  [Persons].[email]='###@###.###'
FROM 
  [Persons] 
  INNER JOIN [Persons].[empid] 
  ON [Details].[empid] = [Persons].[empid] 
WHERE 
  [Persons].[firstname]='abc' AND 
  [Details].[designation]='Manager'

内部联接[人员].[empid]?除了错误和不使用表别名之外,这与我的答案有什么不同?@AaronBertrand至少他更改了格式、电子邮件字符串和大写的“Manager”内部连接[Persons].[empid]?除了错误和不使用表别名之外,这与我的答案有什么不同?@AaronBertrand至少他更改了格式、电子邮件字符串和大写的“Manager”,我不知道你可以使用这样的别名。我总是觉得奇怪,你需要指定两次表。我来自Access,其中update语句从来没有from子句;只需在Persons.PersonID=Detail.PersonID SET email='1上更新Persons内部联接详细信息即可us@them.comSQL Server的语法在很多方面与Access不同。我不知道你可以使用这样的别名。我总是觉得奇怪,你需要指定两次表。我来自Access,其中update语句从来没有from子句;只需在Persons.PersonID=Detail.PersonID SET email='1上更新Persons内部联接详细信息即可us@them.com'SQL Server语法在许多方面与Access不同。的可能重复