从SQL Server 2008中删除大量数据

时间:2012-05-25 06:50:06

标签: sql-server-2008 sql-delete

我有一个场景,我必须在多个表中进行更新,这些表彼此依赖,例如有关系,来自网页的大数据,其中有很多文本框,复选框和下拉列表。

我正在使用jQuery.ajax来保存数据。新的数据保存方法写在那里,它正在工作。

现在很难处理大量数据以进行更新。

我知道我将删除所有数据并将其另存为新行。这是个好主意吗?

我应该在此处记住更新所有这些记录,我必须花一周的时间来编写更新方法。

请在这种情况下指导我。

1 个答案:

答案 0 :(得分:2)

你的问题很模糊,但我想你是这么说的:

  • 我可以将数据插入我的数据库
  • 更新我的数据看起来很难,所以我更喜欢删除然后再次插入(因为我已经编写了代码)

我会说这是一个坏主意,原因如下(毫无疑问还有更多):

  • 即使你只是删除,你仍然需要确定要删除的正确行,以正确的顺序从表中删除等。所以你不太可能节省很多时间
  • 您将为应用程序添加不必要的复杂性和额外维护工作:事务处理,维护的其他代码,权限更改等。
  • 以触发器和/或程序的形式向服务器端添加服务器端逻辑将变得更加困难,因为DELETE不一定真正意味着DELETE,它可能意味着UPDATE的开始(我的意思是逻辑上,不是这是一个巨大的痛苦,维护以及可能破坏任何基于DML操作或事件的代码,跟踪或审计
  • 数据库需要进行更多日志记录,因为您已将一个操作分为两个

也许你有充分的理由希望避免更新,但“难以写”不应该是其中之一(如果我过分简化你的情况,我会道歉)。

如果你准确解释什么是“困难”,你可能得到一个更有用的答案,给出一些关于“大量数据”含义的背景,展示一些表格结构和代码来说明你的困难等。