【问题标题】:Methods of Deleting Duplicates in SQL Server with SSDT使用 SSDT 在 SQL Server 中删除重复项的方法
【发布时间】:2020-01-09 12:04:14
【问题描述】:

我目前正在建立一个在 SSDT 中有上传过程的数据库。它随着时间的推移从 Excel 工作表中提取数据。我的问题是随着时间的推移会附加 Excel 工作表,但上传过程会在每次运行过程时上传整个工作表。这会导致先前存在的数据的精确重复行。

我已尝试通过多种方式解决此问题。我曾尝试使用 SSDT 中包含的排序功能,但无论出于何种原因都无法使其正常工作。我正在考虑编写和 SQL 任务以在每次上传后清理数据库,但我对自己这样做的能力非常有信心。是否有一些我没有想到的方法可以使这更容易或让排序转换起作用的方法?提前感谢您的帮助。

【问题讨论】:

  • 在 staging table -> perm table 之后以编程方式清理你的骗子,不要合并骗子。
  • 我遇到的唯一问题是,在合并之前,您必须在数据库中拥有多于一倍的空间才能创建临时表,尽管我不认为其他任何建议已经找到了解决这个问题的方法。也许我会试试这个。
  • 可以在加载前清除表,但如果加载失败,您将没有数据,因为您刚刚清除了它。更安全地加载和操作数据。

标签: sql sql-server sorting duplicates sql-server-data-tools


【解决方案1】:

您可以使用带有 row_number() 窗口函数的 cte 删除 SQL Server 中的重复行。

【讨论】:

  • 这是我想写的要执行的 SQL 任务。似乎这可能是更好的方法。将在今天晚些时候尝试。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-13
  • 2014-07-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多