2013-02-26 23 views
0

您好,我有一个包含批处理标题和详细记录的文件。我想添加一个新的列,它将为批处理标题分配一个编号,然后将该编号添加到详细记录中。SQL循环 - 为每个批次添加1

第一列中的数据如下所示。

AAA

BBB

BBB

BBB

BBB

BBB

BBB

AAA

BBB

BBB

BBB

AAA

我想要它做的事情是这样的: 的数据看起来像这样

AAA - 1

BBB - 1

BBB - 1

BBB - 1

BBB - 1

BBB - 1

BBB - 1

AAA - 2

BBB - 2

BBB - 2

BBB - 2

AAA - 3

+0

你提到一个文件。这(数据)是您想要导入的文本文件吗?或者你已经拥有的数据库表? – 2013-02-26 13:36:48

+0

这是一个文本文件,我已经导入到表 – user2111388 2013-02-26 16:26:59

回答

0

假设你的文件是要导入到SQL Server 2008的文本或CSV文件:

  • 如果您需要要做到这一点,我会在导入 之前在Excel中摆弄文件。
  • 如果您需要定期执行此操作,我会在.NET中编写一个 快速控制台应用程序来为我执行此操作。然后,您可以让应用程序对SQL Server进行推送,以使其成为一个单一的过程。

如果数据已经在SQL Server 2008中,我仍然会考虑在.NET中以逐条记录的方式进行此操作。 .NET只是一个比T-SQL更好的顺序处理工具。

如果T-SQL是您拥有的唯一工具...可能(使用ROW_NUMBER())编写一些可以为您做到的批量更新。但是他们会很难得到正确的。您可能必须使用光标并尝试顺序处理。

ETA:如果你有SSIS可用,你可以写一个脚本转换为你做这个。这实际上可能是最好的解决方案。

+0

我目前在Excel中执行它,但它是缓慢和乏味的,我会看看这个.net工具。谢谢 – user2111388 2013-02-27 16:31:22