是否可以将多个项目插入一行并逐个返回

时间:2015-05-21 01:42:18

标签: c# sql winforms rows table-valued-parameters

我正在使用此Sql命令

INSERT INTO SAMPLES (reportno, samplename, analysisname) 
       VALUES (1, 'Lemon', 'ecobali1,ecobali2,ecobali3)

我的结构将是:

REPORT NO : 1
   SAMPLE : LEMON

   ANALYSIS

   Ecobali1

   Ecobali2

   Ecobali3

稍后我需要逐个获取分析名称以输入详细信息;

SELECT * FROM SAMPLES WHERE reportno =1

我的问题是:

是否有可能发展这样的结构?

我被困在这里,因为我需要在一行中添加多个值并逐个获取

我可以在这里使用TVP吗?

3 个答案:

答案 0 :(得分:0)

尝试在表的一行中存储多个值并不是一个好习惯。你可以很好地为每一行设置一组值,因为存储很便宜。如果要使用单个insert语句,可以通过添加到VALUES子句来插入多行。我找到了说明here,并复制了以下示例:

INSERT INTO Table ( Column1, Column2 ) VALUES ( Value1, Value2 ), ( Value1, Value2 )

答案 1 :(得分:0)

是的,您可以将这些分层结构中的数据保存在一个表中,但不能很好地保存。

  1. 加大力度操纵analysisname
  2. 难以分析SQL查询中的数据
  3. 您应该创建一个主表和详细信息表,其中详细信息表存储analysisname

答案 2 :(得分:0)

我看到的是,您应该创建另一个名为analysis

的表
analysis((primary)analysisID,analysisname,analysisdesc);
SAMPLES((primary)reportNo,samplename,analysisID(foreign));

这两个表将创建一个关系one sample with zero or more analysis

相关问题