我想一次更新两个表。如何在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'
我想一次更新两个表。如何在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'
当前回答
您应该在事务中放置两个更新语句
其他回答
您可以为一个表编写更新语句,然后在第一个表更新时触发更新第二个表
对不起,afaik,你不能那样做。要更新两个不同表中的属性,需要执行两条单独的语句。但是它们可以是批处理的(在一次往返中发送给服务器的一组SQL)
对于基于Table2特定列的table1特定列的常规更新,这个查询工作完美:
UPDATE table 1
SET Col 2 = t2.Col2,
Col 3 = t2.Col3
FROM table1 t1
INNER JOIN table 2 t2 ON t1.Col1 = t2.col1
这适用于MySQL,实际上只是一个隐式事务,但它应该是这样的:
UPDATE Table1 t1, Table2 t2 SET
t2.field = t2.field+2,
t1.field = t1.field+2
WHERE t1.id = t2.foreign_id and t2.id = '123414'
如果你要对多个表进行更新,需要多条语句,如果你先更新一个表,然后根据其他条件更新另一个表,这很可能是可能的,你应该使用事务。
它就像下面显示的查询一样简单。
UPDATE
Table1 T1 join Table2 T2 on T1.id = T2.id
SET
T1.LastName='DR. XXXXXX',
T2.WAprrs='start,stop'
WHERE
T1.id = '010008'