如何实现这个sql

gfgen 2007-10-07 05:31:13
将一系列数据如(1,20,21,47,28,29.....)插入到一个表中,一个一个用insert 太慢了
...全文
119 9 打赏 收藏 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Generics 2007-10-07
  • 打赏
  • 举报
回复
所以要用bcp或者BULK INSERT来把大量数据放进表里. 当然啦, 也可以写程序实现.
gfgen 2007-10-07
  • 打赏
  • 举报
回复
前台有一个序列(1,20,29........)100000个数,如何将他们插入到数据表中,以上的两个存储过程不行啊,不过我还是谢谢了。
gfgen 2007-10-07
  • 打赏
  • 举报
回复
楼上的回答无法解决要插入的数量很大的情况,
INSERT TABLENAE SELECT ‘1’UNION ALL SELECT ‘2 '...................
如果要插入100000条记录,,sql语句太长无法运行
Generics 2007-10-07
  • 打赏
  • 举报
回复
数据不是很多的时候可以用这种方法, 数据太多, 就只能用bcp或者其他的一些bulk copy办法了.

declare @sql varchar(8000)
declare @value varchar(500)
set @value = '1,20,21,47,28,29'
set @sql = 'insert into tablename (id1) select ' + replace(@value, ',', ' union all select ')

exec (@sql)
Generics 2007-10-07
  • 打赏
  • 举报
回复
楼上的办法不错.
gfgen 2007-10-07
  • 打赏
  • 举报
回复
大概没说清楚,一个表就一个字段id int 现在想将将一些数据插入 ,如下
表table1
id
1
20
21
47
28
29

当然可以用
insert table1 (id) values (1)
insert table1 (id) values (20)
insert table1 (id) values (21)
insert table1 (id) values (47)
insert table1 (id) values (28)
insert table1 (id) values (29)
如果要插入的数据为100000个,就得执行100000次,考虑网络传递的延时,时间可能长达1-3分钟,
可否有其他语句来实现此结果,最好用一个或少量存储过程来完成。


fengming2222 2007-10-07
  • 打赏
  • 举报
回复
insert tablename select * from tablename2
或者
INSERT TABLENAE SELECT ‘1’UNION ALL SELECT ‘2'...................
hbzy123 2007-10-07
  • 打赏
  • 举报
回复
declare @sql varchar(8000)
declare @value varchar(500)
set @value = '1,2,3,4,5,6,7,8'
set @sql = 'insert into tablename (id1) select ' + replace(@value,',',' union select ')
execute (@sql)
dongdong715 2007-10-07
  • 打赏
  • 举报
回复
你可以用文本直接导入
下载代码方式:https://pan.quark.cn/s/c66ecb4d06ce 同源策略:从安全角度出发,浏览器会对脚本发起的跨站请求施加限制,要求JavaScript或Cookie仅能获取同源(即协议、域名和端口完全一致)下的资源。正因如此,不同项目间的调用会受到浏览器的阻碍。以常见情境为例:WebApi作为数据服务层,它是一个独立的项目,而MVC项目则承担Web的展示功能,此时MVC项目需要调用WebApi中的接口以获取数据并在页面上呈现。由于WebApi与MVC属于两个独立的项目,运行后便会产生前面提及的跨域问题。WebApi的跨域问题主要源于浏览器的同源策略,这是一种安全措施,旨在限制JavaScript或Cookie仅能访问同一源(包括协议、域名和端口)下的内容。在实际开发过程中,当WebApi作为一个独立服务,例如数据服务层,而MVC项目作为前端展示层时,两者运行在不同的项目和端口下,浏览器将阻止MVC对WebApi的跨域请求,从而影响数据的正常获取。为了应对这一问题,我们可以采用CORS(跨域资源共享)机制。CORS通过在HTTP请求与响应头中嵌入特定标识,向浏览器明确哪些跨域请求是被允许的。例如,服务器可以在响应头中添加`Access-Control-Allow-Origin:http://localhost:8081`,表示允许来自http://localhost:8081的请求访问资源。解决WebApi跨域问题的具体实施步骤如下: 1. 构建一个包含MVC项目(Web)与Web API项目(WebApiCORS)的解决方案。 2. 在MVC项目中,例如Home控制器的Index视图,通过Ajax向WebApiCORS发起跨域请求。 3...

22,298

社区成员

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

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