gpt4 book ai didi

sql - Access 查询表的更新

转载 作者:行者123 更新时间:2023-12-01 13:30:57 25 4
gpt4 key购买 nike

我目前正在将 Access 数据库转换为 SQL。在浏览它的过程中,我发现了这一点。

Update EmployeeCustomerOrderDetail set Valid = -1;

这很奇怪,因为 EmployeeCustomerOrderDetail 是一个查询,定义如下。

Select * 
From Employee
inner join Order on Employee.EmployeeID = Order.EmployeeID
inner join Customer on Order.CustomerID = Customer.CustomerID
inner join OrderDetail on Order.OrderID = OrderDetail.OrderID

我认为这没有任何效果,因为对 Select 的更新不起作用,但我用

对其进行了测试
Update (Select * From Employees) as Emp set Emp.WorkPhone as 'Random Value'

它奏效了。

那么我的问题是,这是如何处理的。 update是否向后遍历所有查询表,直到找到一个dataTable?它会更改引用列的值还是关联表中的实际数据?

最佳答案

这只适用于可更新的记录集。这与直接在 Access 查询中更改值一样。

在可更新的记录集中,数据集(查询)中的每个字段都直接绑定(bind)到表中的一个字段。这意味着更新直接影响查询的基础表。您可以查看this answer有关哪些记录集可更新和不可更新的规则。

关于此的另一件真正违反直觉的事情是具有外连接的记录集可以包含可更新的不匹配记录。在这种情况下,会在表中创建一条不包含匹配记录的记录,然后再创建一条新记录。

关于sql - Access 查询表的更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51613074/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com