30/09/2018, 17:29
Cách Insert 1 lần vào tất cả các bảng trong database
Mình có cơ sở dữ liệu gồm 16 bảng, có quan hệ với nhau thông qua các khóa, dữ liệu của bảng này liên quan đến bảng kia (Ví dụ: Dữ liệu ở bảng A sau khi được chèn vào sẽ sinh ra id ở bảng A gọi là IdBangA; IdBangA này lại là đầu vào của id khác ở bảng B). Giờ mình muốn tạo một form để insert dữ liệu một lần vào đồng thời tất cả các bảng trên thì làm như thế nào cả nhà nhỉ.
Ví dụ cụ thể:
Người(ID_nguoi, HoTen, QueQuan)
Người vay(ID_nguoivay, ID_nguoi, A, B)
Người_cho_vay (ID_nguoichovay, ID_nguoi, C,D,E)
Đơn vị(ID_donvi, Madonvi, TenDonVi)
Nguoichovay_donvi(Id_nguoichovay_donvi, ID_Nguoi, ID_donvi, Chucvu, G, H, J)
A, B, C, D, E, G, H, J
là ví dụ một số trường khác trong bảng
Bài liên quan
=> XML (hoặc 1 dạng nào bạn có thể xử lý được)=> storeprocedure => insert vào lần lượt
Bạn có thể dùng store hoặc viết code insert bình thường mà, ví dụ, sau khi nhập liệu đầy đủ, bạn insert bảng Người trước, sau đó lấy ID_Nguoi vừa insert, rồi insert tiếp vào bảng Người Vay…
nếu bạn viết store procedure thì làm như sau:
1 - viết câu truy vấn insert dữ liệu vào tblNguoi
2- sau khi insert thành công, thì bạn viết câu truy vấn để lấy ID_Nguoi vừa mới insert vào bảng tblNguoi
3- viết câu truy vấn insert dữ liệu vào tblNguoiVay. Và cứ làm như vậy với các bảng tương tự
Có nên tính đến trường hợp mình đang lưu giữ liệu hay đang get dữ liệu ra thì cũng có người thực hiện thao tương tự làm nhầm lẫn kết quả người này với người kia không các bác???. Dù ít thì khả năng là vẫn có phải không?
SQL Server đủ thông minh để tự phân luồng dữ liệu ra vào cho trường hợp này nên bạn cứ yên tâm.
Cám ơn các bạn đã tư vấn nhé, mình sẽ thử xem thế nào