SQL批量插入数据

我有一个表A,里面存了很多数据,主键是id;另一个表B,主键是A.id和另一个字段B.xx;现在我想从A表中取id,批量插入到B表中,字段XX的值是常数值。怎么写SQL语... 我有一个表A,里面存了很多数据,主键是id;另一个表B,主键是A.id和另一个字段B.xx;
现在我想从A表中取id,批量插入到B表中,字段XX的值是常数值。
怎么写SQL语句呢?
展开
 我来答
hy1397471
推荐于2017-09-06 · 知道合伙人软件行家
hy1397471
知道合伙人软件行家
采纳数:4714 获赞数:17154
15年数据库维护及数据库应用系统开发经验,从事零售业、服务业及财务管理类系统开发与维护。

向TA提问 私信TA
展开全部

一、针对批量插入数据,如果量不是太多,可以多条SQL语句运行就可以了,

类似下面的语句,当然可以使用excel 编辑后,复制到查询器中运行,

insert into table(a,b) values('1','a')

insert into table(a,b) values('2','b')

insert into table(a,b) values('3','c')


二、大量数批量插入,即数据表的移植,数据备份转换之类的,就需要工具,比如MSSQL的DTS工具,pb的数据通道 等等。这里介绍一下 DTS工具。

1、在SQL安装目录下开启导入和导出数据,即DTS。

2、选择一个批量的数据,可以是表,也可以是带分隔符的文件,或excel文档之类,如图中选择,导入的格式

3、选择导入的目标

4、选择导入方式

5.具体的导入规则

hpy910512
2012-10-09
知道答主
回答量:22
采纳率:0%
帮助的人:3.2万
展开全部
循环插入:

DECLARE @MyCounter INT
SET @MyCounter = 0 /*设置变量*/
WHILE (@MyCounter < 2) /*设置循环次数*/
BEGIN
WAITFOR DELAY '000:00:10' /*延迟时间10秒*/
INSERT INTO time_by_day
(time_id, the_date, the_year, month_of_year, quarter, day_of_month)
SELECT TOP 1 time_id + 1 AS time_id, the_date + 1 AS the_date, YEAR(the_date + 1)
AS the_year, MONTH(the_date + 1) AS month_of_year, { fn QUARTER(the_date + 1)
} AS quarter, DAY(the_date + 1) AS day_of_month
FROM time_by_day
ORDER BY time_id DESC
SET @MyCounter = @MyCounter + 1
END
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Com_JJYY
2011-06-11 · 超过34用户采纳过TA的回答
知道答主
回答量:133
采纳率:100%
帮助的人:63.8万
展开全部
update就能实现 SQL语句本身就是循环,可以实现批量处理
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
apu510064
2011-06-11 · TA获得超过964个赞
知道小有建树答主
回答量:1634
采纳率:55%
帮助的人:926万
展开全部
insert into B(id,XX)
select id,'常数值' from A
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
唔製
2011-06-11 · TA获得超过1146个赞
知道小有建树答主
回答量:456
采纳率:0%
帮助的人:577万
展开全部
Insert into B(id) select id from A

参考资料: http://www.cnblogs.com/freshman0216/archive/2008/08/15/1268316.html

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式