我如何传递一个多列数据表与N行数作为CSV

本文关键字:数据表 CSV 何传递 一个 | 更新日期: 2023-09-27 17:50:59

假设有一个叫做计算机科学学士的学术课程。假设是4年,假设总共有50门课程分布在4年里。假设我需要保存这50门课程和学术课程名称,我肯定需要使用集合。

所以在DB中有两个表Academics表和Courses表,在这种情况下,一行将保存到Academics, 50行将保存到Courses

但是假设有一个场景,我被告知使用CSV而不是集合。所以stored procedure有一个类型为varchar(max)的输入变量来接受来自客户端的csv

假设我需要在csv string中为每一行数据包括这些列(假设datagridview上当前显示的50门课程)

CourseID
YearNo --> when the student has the do this course in 1st year, 2nd year etc.
IsCompulsory  --> any course a student select can be either compulsory or an elective
  1. 我如何把这些列和行在一个csv字符串?
  2. 使用CSV字符串来保存上面的集合(多列集合)是常见的做法吗?
  3. 我被告知开发人员使用CSV字符串来存储集合,这是现实吗?

谢谢

我如何传递一个多列数据表与N行数作为CSV

1)在CSV字符串中放置列的一般解决方案是:

SELECT column + ',' FROM table FOR XML PATH('') WHERE condition

这是一种常见的做法,但我不确定这是否总是一个好方法

如果使用集合,则应该使用XML。xml易于创建、解析和维护。查看这里的一个示例: