INSERT INTO A VALUES(name) SELECT NAME FROM B

mingming912 2011-05-04 12:00:19

INSERT INTO A VALUES(name) SELECT NAME FROM B

这个语句有什么限制吗?对于一次复制几千万数据呢?
...全文
222 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
Rotel-刘志东 2011-05-04
  • 打赏
  • 举报
回复
---虽然一次插入数据无限制,但数据的效率不会太高的
insert into A(name)select* from B
---最好还是用导入导出工具
Shawn 2011-05-04
  • 打赏
  • 举报
回复
--一次插入多条数据,语句本身无限制
INSERT INTO table_name(fieldlist)
SELECT fieldlist FROM table_name

--一次只能插入一条记录
INSERT INTO table_name(fieldlist)
VALUES('valuelist')

--生成新表new_table_name,语句本身无限制
SELECT * INTO new_table_name
FROM table_name
Shawn 2011-05-04
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 mingming912 的回复:]
还想问下,这个操作是不是原子性的。要么全部复制,要么都不复制?
[/Quote]
是的
mingming912 2011-05-04
  • 打赏
  • 举报
回复
还想问下,这个操作是不是原子性的。要么全部复制,要么都不复制?
--小F-- 2011-05-04
  • 打赏
  • 举报
回复
语句应该是
INSERT INTO A (name) SELECT NAME FROM B

一次不能插入太多吧 与你机器的配置这些都有关系
叶子 2011-05-04
  • 打赏
  • 举报
回复
可以的,数据过多会影响效率。
昵称被占用了 2011-05-04
  • 打赏
  • 举报
回复
所以最好用导入导出工具实现
昵称被占用了 2011-05-04
  • 打赏
  • 举报
回复
一次复制几千万数据是可以的,不过可能时间很长,会产生很多日志,如果硬盘空间不足可能报错
昵称被占用了 2011-05-04
  • 打赏
  • 举报
回复
INSERT INTO A (name) SELECT NAME FROM B
mustudent 2011-05-04
  • 打赏
  • 举报
回复
用While循环肯定是最慢的
一般复制也都是用Insert into a Select * From b了
至于你用Select into a (cola,colb) Select * From b
如果b表列比较多的话,那么指定列名效果更好些
mingming912 2011-05-04
  • 打赏
  • 举报
回复
我写的语句,是错的,呵呵
因为我要在存储过程里面完成数据的复制,所以不能用工具之类的。
用这个语句与用while语句,再加INSERT INTO A (name) SELECT TOP 10000 NAME FROM B 这样的语句,效率相比,哪个要好一点?
mustudent 2011-05-04
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 public0011 的回复:]

SQL code
INSERT INTO A VALUES(name) SELECT NAME FROM B

这句用的更多一些.根据个人写法的爱好.不过执行效率应该一样



[/Quote]

//这个语句本身就是有问题的,正确的应该是下面的
INSERT INTO A (name) SELECT NAME FROM B
大力水手 2011-05-04
  • 打赏
  • 举报
回复
INSERT INTO A VALUES(name) SELECT NAME FROM B
这句用的更多一些.根据个人写法的爱好.不过执行效率应该一样
xuexiaodong2009 2011-05-04
  • 打赏
  • 举报
回复
可以的,数据过多会影响效率。

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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