学习了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 表里面去找。
如有转载,请注明出处。