我正在使用此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吗?
答案 0 :(得分:0)
尝试在表的一行中存储多个值并不是一个好习惯。你可以很好地为每一行设置一组值,因为存储很便宜。如果要使用单个insert语句,可以通过添加到VALUES
子句来插入多行。我找到了说明here,并复制了以下示例:
INSERT INTO Table ( Column1, Column2 ) VALUES ( Value1, Value2 ), ( Value1, Value2 )
答案 1 :(得分:0)
是的,您可以将这些分层结构中的数据保存在一个表中,但不能很好地保存。
analysisname
您应该创建一个主表和详细信息表,其中详细信息表存储analysisname
答案 2 :(得分:0)
我看到的是,您应该创建另一个名为analysis
analysis((primary)analysisID,analysisname,analysisdesc);
SAMPLES((primary)reportNo,samplename,analysisID(foreign));
这两个表将创建一个关系one sample with zero or more analysis