1

我需要更新一些存储在两个表中的信息。要更新其中一个表,必须与另一个表进行 JOIN。我想知道,如果我可以用一个查询来更新两者。一些帖子建议使用触发器。我希望有另一种方法,因为我必须用 C# 来做。我还看到其他帖子说可以使用这样的东西:

update pd, pr
set pd.Name = 'Test',
pr.Date = '2012-07-31',
from prDetail pd
left join pr on pd.ID = pr.ID
where pd.Code = '45007'
and pr = '2019'
and pr.Item = '1'

这对我不起作用(它显示此错误:)Incorrect syntax near ','。这可以通过某种方式实现吗?

4

3 回答 3

6

不。

您一次只能更新一个表。

将您的更新分成两个更新查询,如有必要,将它们包装在一个事务中。

于 2012-08-17T12:02:01.047 回答
0

是的,正如@podiluska 所说,您一次只能更新一张表。您还可以使用事务来通过单个事务执行两个查询。

否则,如果您的表/关系具有依赖关系(外键和主键)关系,那么您可以使用cascade选项。

别的,

您可以使用Trigger.

于 2012-08-17T12:12:32.517 回答
0

不,一次更新两个是不可能的,但您可以考虑将其包装在一个存储过程中并调用它。如果可能,您应该尽量避免触发此类事件。

于 2012-08-21T19:21:16.343 回答