进行更新以记录时,从SQL Server表中添加和删除行



我有一个SQL Server表,其中包含两个列Appid和groupId。该表是从ASP ListBox填充的。appid可以与它相关联。

它可以为每个应用程序添加组效果很好,当用户想要编辑记录时,我可以使用已经选择的项目填充列表框。

我想知道的是,当用户在列表框中编辑项目时,他们可以取消选择现有项目并选择新的项目是什么是更新数据库中表的最佳方法?我会更好地删除appid的所有记录,还是有更好的方法?

不可能有超过12组链接到任何应用程序。

编辑

对不起,应该说该表是应用表和组表之间的链接表。链接表中的ID是这些表的主要键。

tia

pro从语法上讲,删除appid的所有内容并将其全部添加回来会更容易。但是,使用此方法,您的性能会受到巨大的打击。

因此,从性能角度来看,您最好的方法是将操作分为两个部分:

  • 在链接表中查找记录,这些记录不再是您的listbox&删除它们
  • 在您的列表框中查找不在表中的记录&插入它们

当用户点击列表框时,您只需跟踪数据以插入和删除的数据时才能正常工作。然后将所有更改一起应用在一起,以执行插入内容&一次删除一个记录将意味着更多的交易速度较慢。


编辑

进一步的改进将是扭转一些删除&插入更新中,因为更新通常比删除 插入更快。尽管这将为您的代码增加复杂性,从而归结为更重要的。

  1. 与以前一样,请跟踪删除&当用户更改列表框时插入
  2. 计算多少删除&插入您有
  3. 以最低的数字为单位,这就是您可以转换为更新的删除 插入的数量。例如,如果您需要删除groupId 123&插入GroupID 456,然后仅更新GroupID 123至456。
  4. 如果您剩下删除,请执行这些操作,否则处理剩余的插入

最新更新