sql - 如何在 SQL Server 2005 中的一条语句中更新两个表?

标签 sql sql-server sql-server-2005 tsql

我想一次性更新两个表。如何在 SQL Server 2005 中执行此操作?

UPDATE 
  Table1, 
  Table2
SET 
  Table1.LastName='DR. XXXXXX', 
  Table2.WAprrs='start,stop'
FROM 
  Table1 T1, 
  Table2 T2
WHERE 
  T1.id = T2.id
AND 
  T1.id = '010008'

最佳答案

您无法在一个语句中更新多个表,但是,您可以使用事务来确保以原子方式处理两个 UPDATE 语句。您还可以对它们进行批处理以避免往返。

BEGIN TRANSACTION;

UPDATE Table1
SET Table1.LastName = 'DR. XXXXXX' 
FROM Table1 T1, Table2 T2
WHERE T1.id = T2.id
and T1.id = '011008';

UPDATE Table2
SET Table2.WAprrs = 'start,stop'
FROM Table1 T1, Table2 T2
WHERE T1.id = T2.id
and T1.id = '011008';

COMMIT;

关于sql - 如何在 SQL Server 2005 中的一条语句中更新两个表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2044467/

相关文章:

sql - 数据库 View 不反射(reflect)底层表中的数据

sql-server - SQL 服务器登录和用户

sql-server - SQL Server过程执行计划的奇怪问题

mysql - 在 MySQL 中,当一个项目可能属于两种或多种类型的项目时,映射 "belongs-to"关系的正确方法是什么?

mysql - 如果否则更新 sql 查询以组合多个查询

java - hibernate 插入选项

sql-server - T-SQL:从 2 行中删除 1 行,其中 1 列的值是第二列的两倍

python - 查询在 SQL Server 中工作但在 sqlite 中不起作用

sql - 过滤数据上的 Row_number()

android - SQL计数 从GOB开始的顺序