高手帮帮忙!这条sql语句怎么写啊?(5分)

  • 主题发起人 主题发起人 dajiangxu
  • 开始时间 开始时间
D

dajiangxu

Unregistered / Unconfirmed
GUEST, unregistred user!
我想向数据库表一次插入多条记录。
下面是插一条记录:
insert into 学生(姓名,性别) values(张三,男)

如果是两条或者多条怎么写啊呢?sql语句里面有没有类似下面的写法?
insert into 学生(姓名,性别) values(张三,男),(李四,女)
 
帮帮忙,急啊!
 
是没有这种写法还是……?
 
没有这样写的;
两种方法,

一是连续多条插入(INSERT INTO)语句;(一起提交);
另一种是写一个插入的存储过程,只要每次提供姓名,性别两个参数;
 
一是连续多条插入(INSERT INTO)语句;(一起提交);
能不能写个简单的例子?谢谢哦 !
 
看你的数据是怎么来的了.如是从其他表里来就可以
insert 学生(姓名,性别) select 姓名,性别 from 表.
如不是那只有一条一条插入了.应为你数据本来就是一条一条写的嘛...
 
这些数据不是从其他表里面得到的,是我自己计算出来的。
是这样的一道题目:某一段时间内(比如2006-1-1到2006-3-2),这段时间每天整点取一个随机整数(就是一天产生24个随机数),然后插入数据库。
我想把一天的24条记录一次性插入数据库。
for i:=trunc(date1) to trunc(date2) do
begin
cod1:=150+random(30);
cod2:=150+random(30);
cod3:=150+random(30);
cod4:=150+random(30);
……
先产生24个随机数,然后一次插入。
end
 
呵呵,纯 SQL 语句可以实现,
insert into 学生(姓名,性别)
select '张三','男' union all
select '李四','女'
但是很少人这么干,一般都使用循环写成多个 Insert 语句,对于你多个的随机数,你可以先得到后保存到一个 数组里头用循环写成语句。。。
 
下面写成这样应该没错吧,但提示说 sql.Add('select :Rq1,:FlowV1,:SumFlowV1,:Cod1 union all ');出错
with ADOQuery1 do
begin
close;
sql.Clear;

sql.add('insert into THData(Rq,FlowV,SumFlowV,CodV) ');
sql.Add('select :Rq1,:FlowV1,:SumFlowV1,:Cod1 union all ');
sql.Add('select :Rq2,:FlowV2,:SumFlowV2,:Cod2 union all ');
sql.Add('select :Rq3,:FlowV3,:SumFlowV3,:Cod3 union all ');

parameters.ParamByName('Rq1').Value:=i+(1/24)*t;
parameters.ParamByName('FlowV1').Value:=flow;
parameters.ParamByName('SumFlowV1').Value:=sumflow;
parameters.ParamByName('Cod1').Value:=Cod1;

parameters.ParamByName('Rq2').Value:=i+(2/24)*t;
parameters.ParamByName('FlowV2').Value:=flow;
parameters.ParamByName('SumFlowV2').Value:=sumflow;
parameters.ParamByName('Cod2').Value:=Cod2;

parameters.ParamByName('Rq3').Value:=i+(3/24)*t;
parameters.ParamByName('FlowV3').Value:=flow;
parameters.ParamByName('SumFlowV3').Value:=sumflow;
parameters.ParamByName('Cod3').Value:=Cod3;

Prepared;
ExecSQL;

end;
 
谢谢大家!
 
后退
顶部