关于insert into 多行插入

贰月 2008-04-17 12:02:43
有个表student,两个字段Sname和Age

INSERT INTO student (Sname,Age)
VALUES ('王五',17),
('赵',18)


在查询分析器里执行的时候说逗号附近有语法错误,我不明白。
...全文
6567 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenjfeng1226 2010-05-17
  • 打赏
  • 举报
回复
曾经在一个BLOG上见一大牛写SQL调优里讲到过这种写法,似乎是IBM的一个技术工程师,他讲到这样写,会减少数据库执行时间,记得还附有测试的剪接图。是ORACLE支持的,我装的是SQL SERVER 2008 当时测试了一下,可以正常插入。
今天我用同样的方式写,在本机上不能运行通过,本机装的是SQL SERVER 2000
可能如楼上所说,2008版本才支持这个
lweia 2009-05-13
  • 打赏
  • 举报
回复
"values(XXX),(XXX)"

这个是可以的,不过是在MSSQL2008里新加入的

第一次发贴
nettell 2008-11-21
  • 打赏
  • 举报
回复
ALUES('a','b'),
('c','d'),
…… ……
…… ……

这我也见过是在SQL结构化语言这本书上,
但是在SQL SERVER 2005上不能用
不知为吗
hanjoe109 2008-06-12
  • 打赏
  • 举报
回复
學習了
林g 2008-05-12
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 happyflystone 的回复:]
SQL codeINSERT INTO student (Sname,Age)
select '王五',17 union all select
('赵',18)
[/Quote]
xbt746 2008-05-12
  • 打赏
  • 举报
回复
学习了
UltraBejing 2008-05-01
  • 打赏
  • 举报
回复
接分先!
wynlc 2008-04-17
  • 打赏
  • 举报
回复
create table student
(
sname varchar(20),
age int
)

INSERT INTO student
select '王五',17
union all
select '赵',18

select *
from student

drop table student
wangj_0520 2008-04-17
  • 打赏
  • 举报
回复
见过这样?
INSERT INTO student (Sname,Age)
VALUES ('王五',17),
见过 insert into select*from tablename
这样的写法不知道?
学习了?!
kelph 2008-04-17
  • 打赏
  • 举报
回复
values 一次搞一条
想搞多条用select ...union select...结果集
-狙击手- 2008-04-17
  • 打赏
  • 举报
回复
INSERT INTO student (Sname,Age) 
VALUES ('王五',17)

INSERT INTO student (Sname,Age)
VALUES ('赵',18)


or

INSERT INTO student (Sname,Age)
select '王五',17 union all
select '赵',18
子陌红尘 2008-04-17
  • 打赏
  • 举报
回复
INSERT INTO student (Sname,Age) 
select '王五',17
union select '赵' ,18
-狙击手- 2008-04-17
  • 打赏
  • 举报
回复
INSERT INTO student (Sname,Age) 
select '王五',17 union all select
('赵',18)
li.ianfei 2008-04-17
  • 打赏
  • 举报
回复
一次插入多条语句的语法如下:
insert [表名](列名)
select [字段值] union
select [字段值] union
………………
select [字段值]


如:(以下是插入两条数据)
insert bbsUsers
select 'lijianfei','396552155',19 union
select 'panhs','735991365',22
Ny-6000 2008-04-17
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 wynlc 的回复:]
引用 7 楼 fortune25 的回复:
引用 5 楼 wangj_0520 的回复:
见过这样?
INSERT INTO student (Sname,Age)
VALUES ('王五',17),
见过 insert into select*from tablename
这样的写法不知道?
学习了?!


VALUES('a','b'),
('c','d'),
…… ……
…… ……

这种写法并不是我杜撰的。。。我是在一本MS-SQL2000精解上看到的,顺手自己试试


很奇很惊讶
[/Quote]

这个应该不行的吧?
wpeng8218 2008-04-17
  • 打赏
  • 举报
回复


--使用数据集向表中插入数据
declare @t1 table(xname varchar(10),xage int)
insert into @t1(xname,xage)
select 'xx1',19
union all select 'xx2',18

--使用其他表想表目标表中插入数据
declare @t table(sname varchar(10),age int)
insert into @t(sname,age)
select xname,xage from @t1

select * from @t
贰月 2008-04-17
  • 打赏
  • 举报
回复
insert into select*from tablename
这种写法也很熟悉,但是这里的数据来源于其他表
wynlc 2008-04-17
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 fortune25 的回复:]
引用 5 楼 wangj_0520 的回复:
见过这样?
INSERT INTO student (Sname,Age)
VALUES ('王五',17),
见过 insert into select*from tablename
这样的写法不知道?
学习了?!


VALUES('a','b'),
('c','d'),
…… ……
…… ……

这种写法并不是我杜撰的。。。我是在一本MS-SQL2000精解上看到的,顺手自己试试
[/Quote]

很奇很惊讶
贰月 2008-04-17
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 wangj_0520 的回复:]
见过这样?
INSERT INTO student (Sname,Age)
VALUES ('王五',17),
见过 insert into select*from tablename
这样的写法不知道?
学习了?!
[/Quote]

VALUES('a','b'),
('c','d'),
…… ……
…… ……

这种写法并不是我杜撰的。。。我是在一本MS-SQL2000精解上看到的,顺手自己试试

22,207

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧