2013-02-26 26 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