ระหว่าง คำสั่ง INSERT INTO Table (SELECT ...... หรือ UPDATE Table SET ..... WHERE (SELECT ....
กับ Loop Insrt หรือ Loop Update ทีละ Record อันไหนจะไวกว่ากัน
Example
1. Code (SQL)
UPDATE tblgoodsdetail SET tblgoodsdetail.IsUse=-1,tblgoodsdetail.UseBy='" & txtEmployeeNameWiden.Text & "' WHERE tblgoodsdetail.Barcode IN(SELECT tblgoodsprdetail.Barcode FROM tblgoodsprdetail WHERE tblgoodsprdetail.PrID='" & txtPrID.Text & "')
2. Code (VB.NET)
For i = 0 To DGVPrDetail.RowCount - 1
ExcuteSQL("UPDATE tblgoodsdetail SET IsUse = 0 WHERE tblgoodsdetail.Barcode='" & BSPRDetail(i)("Barcode").ToString & "'")
Next
อันแรกใช้แบบ SUB SELECT ซึ่งปกติแล้วไม่นิยมใช้ในกรณีที่ข้อมูลเยอะ ๆ ครับ เพราะหลักการของมันก็คือ Main 1 Record จะต้องไปเปรียบเทียบกับข้อมูลทุก Record ที่อยู่ใน SUB SELECT ซึ่งจะทำให้ช้าครับ
UPDATE tblgoodsdetail a inner join (select * from tblgoodsprdetail where PrID='" & txtPrID.Text & "') b
on a.Barcode=b.Barcode SET a.IsUse=-1,a.UseBy='" & txtEmployeeNameWiden.Text & "'