数据库 - 编辑过程

时间:2012-06-13 18:17:32

标签: sql-server database transactions

我有一张名为tbl_Subjects_Taken的表格,其中列出了学生所有的科目。它只包含两列,Stud_IDSubj_ID

走到前端,我有一个表格,让用户可以编辑有关学生本身和该学生所学科目的信息。更新tbl_Students(学生的信息)不是问题,因为单个UPDATE语句可以完成工作。但是另一张桌呢?

一旦用户编辑了表单并按下了保存按钮,我就会这样做:

  1. 删除该学生在tbl_Subjects_Taken
  2. 中录制的所有科目
  3. 添加表单中的所有主题(在我的程序中)。
  4. 这是否真的是在“多方”更新表格的正确方法?

    我使用 SQL服务器

1 个答案:

答案 0 :(得分:1)

删除和重新添加是一种方法。

但我会尝试在服务器上执行所有操作(例如,使用存储过程)。我会将主题ID列表传递给SP。在SP内部,我会做以下事情:

  1. tbl_Subjects_Taken中删除该用户中我传入的列表中的所有主题
  2. 在我传入的列表中添加tbl_Subjects_Taken表中 的所有主题。
  3. 您没有提及您的数据库,但根据您使用的数据库,有不同的方法可以解决此问题。例如,在Oracle和ODP.Net中,您可以使用PL/SQL Associative array将ID传递给PL / SQL函数/ SP。

    但理想情况下,您希望将一台服务器往返,并且您希望尽可能少地删除和插入。这两个步骤应该会带来很好的效率。