我有一张名为tbl_Subjects_Taken
的表格,其中列出了学生所有的科目。它只包含两列,Stud_ID
和Subj_ID
。
走到前端,我有一个表格,让用户可以编辑有关学生本身和该学生所学科目的信息。更新tbl_Students
(学生的信息)不是问题,因为单个UPDATE语句可以完成工作。但是另一张桌呢?
一旦用户编辑了表单并按下了保存按钮,我就会这样做:
tbl_Subjects_Taken
。这是否真的是在“多方”更新表格的正确方法?
我使用 SQL服务器。
答案 0 :(得分:1)
删除和重新添加是一种方法。
但我会尝试在服务器上执行所有操作(例如,使用存储过程)。我会将主题ID列表传递给SP。在SP内部,我会做以下事情:
tbl_Subjects_Taken
中删除该用户中我传入的列表中不的所有主题tbl_Subjects_Taken
表中 的所有主题。您没有提及您的数据库,但根据您使用的数据库,有不同的方法可以解决此问题。例如,在Oracle和ODP.Net中,您可以使用PL/SQL Associative array将ID传递给PL / SQL函数/ SP。
但理想情况下,您希望将一台服务器往返,并且您希望尽可能少地删除和插入。这两个步骤应该会带来很好的效率。