Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2008 SQL循环-向每个批添加1_Sql Server 2008_Loops - Fatal编程技术网

Sql server 2008 SQL循环-向每个批添加1

Sql server 2008 SQL循环-向每个批添加1,sql-server-2008,loops,Sql Server 2008,Loops,您好,我有一个文件,其中包含批标题和详细记录。我想添加一个新列,该列将为批次标题分配一个编号,然后获取该编号并将其添加到详细记录中 第一列中的数据如下所示 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假设您的文件是要导入SQL Server 2008的文本或CSV文件:

您好,我有一个文件,其中包含批标题和详细记录。我想添加一个新列,该列将为批次标题分配一个编号,然后获取该编号并将其添加到详细记录中

第一列中的数据如下所示

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

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

  • 如果您需要这样做一次,我会在之前在Excel中处理该文件 导入它
  • 如果你需要定期这样做,我会写一份 NET中的快速控制台应用程序可为我执行此操作。然后,您可以让应用程序也推送到SQL Server,使其成为一个单步过程

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

如果T-SQL是您仅有的工具。。。可以(使用ROW_NUMBER())编写两个批处理更新来完成这项工作。但要正确处理这些问题很难。您可能只需要使用光标并尝试顺序处理


ETA:如果您有可用的SSI,您可以编写一个脚本转换来完成这项工作。这实际上可能是最好的解决办法

你提到一个文件。这(数据)是要导入的文本文件吗?或者您已经拥有的数据库表?它是一个文本文件,我已经导入到一个表中。我目前在excel中执行此操作,但它速度慢且繁琐。我将查看此.net工具。谢谢