sql-server - 在 SQL 中遍历多个 CSV

标签 sql-server csv

我有一个 SQL Server 2008 数据库。该数据库有一个存储过程,可以更新多条记录。这些记录的 ID 存储在通过逗号分隔字符串传入的参数中。与每个 id 关联的属性值通过另外两个逗号分隔的字符串传入。假设长度(以标记为单位)和值的顺序是正确的。例如,三个字符串可能如下所示:

Param1='1,2,3,4,5'
Param2='Bill,Jill,Phil,Will,Jack'
Param3='Smith,Li,Wong,Jos,Dee'

我的挑战是,我不确定实际解析这三个 CSV 并更新相应记录的最佳方法是什么。我可以访问名为 ConvertCSVtoTable 的过程,它将 CSV 转换为临时记录表。所以 Param1 会返回

1
2
3
4
5

调用该过程之后。我想过一个光标,但后来它似乎变得非常困惑。

有人可以告诉我/告诉我,解决这个问题的最佳方法是什么吗?

最佳答案

我会考虑重新处理您的程序的输入。由于您运行的是 SQL 2008,我的第一选择是使用 table-valued parameter 。我的第二个选择是将参数作为 XML 传递。正如您所知,您当前的方法确实令人头痛,而且更容易出错。

关于sql-server - 在 SQL 中遍历多个 CSV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3408417/

相关文章:

python - 将一个列表的元素多次映射到第二个列表的元素

javascript - 将对象的属性转换为逗号分隔的列表?

c# - 使用哪个隔离级别来防止读取数据?

sql - 从存储过程输出最后插入的主键值

sql - 在 SQL Server 中循环记录集

sql - 如何使用 T-SQL 和 XQuery 从 XML 中进行选择

java - SuperCSV,Dozer : Writing to a csv file. 对于具有多行列表的对象

arrays - 从 CSV 文件读入数组,解析数组,访问每行的第二个元素

c - 带字符串和长的 fscanf

sql - 外连接中的 AND 语法?