SQL的update from 理解

时间:2024-08-26 18:06:08

学习了sql的语句都有快3年,工作上使用都一年半的,最近突然想起update from语句,感觉好像很模糊,虽然语法上使用一直正确,一直都是这样使用,但是就好像不是很明白里面的深处意思。

今天特意测试一下。

Tecul_BarcodeEntityTwo跟Tecul_MovementBillBarcodeEntity存在一个关联字段条码。然后去更新entrydate;

update Tecul_BarcodeEntityTwo set EntryDate=GETDATE() from Tecul_BarcodeEntityTwo b join Tecul_MovementBillBarcodeEntity m
on m.Barcode=b.BCode where m.IsDelete=0 and b.IsDelete=0 and m.Id='E3CE45B6-C0E8-406D-81CB-B2AD12089C7F'

结果: 该语句执行了之后,只更新了一条记录。
    把语句改成一下这样:

update Tecul_BarcodeEntityTwo set EntryDate=GETDATE() from Tecul_MovementBillBarcodeEntity m where m.IsDelete=0
and m.Id='E3CE45B6-C0E8-406D-81CB-B2AD12089C7F'

结果:该语句执行了777条记录。更新了所有Tecul_BarcodeEntityTwo的所有记录。

  总结:当更新Tecul_BarcodeEntityTwo表的时候,from语句后面有Tecul_BarcodeEntityTwo表的时候,会自动从from里面找到满足条件的Tecul_BarcodeEntityTwo使用

到update条件里面。

         update A set 字段1=‘’ from A where ***。update A 的那些记录,需要从from 后面的 A 表里面去找。

如有转载,请注明出处。