当前位置: 代码迷 >> Sql Server >> sql server 2005一次插入多条记录,该怎么解决
  详细解决方案

sql server 2005一次插入多条记录,该怎么解决

热度:98   发布时间:2016-04-24 10:38:28.0
sql server 2005一次插入多条记录
insert into [ flow] ([chip sn],state)select [chip sn],'set up'as statefrom [chip input] where [chip sn] IS NOT NULL AND [take over] = 'done'查资料才知道这只有在sql server 2008里面才能实现,我的数据库是2005.有什么办法实现啊,上万条数据实在不能一句句的插入啊,求大神指导
------解决方案--------------------
没听说不能用,自己检查下语句,我感觉你这语句中间该有的空格都没有
------解决方案--------------------
这语句2005应该是支持的啊,报错?
------解决方案--------------------
2000都支持
 statefrom 没空格
------解决方案--------------------
SQL版本都支持这种格式

Insert into Table2(field1,field2,...) select value1,value2,... from Table1

------解决方案--------------------
'set up'as statefrom 

这个地方错了吧 FROM前面需要一个空格
------解决方案--------------------
发帖代码不加格式还能被发现空格少掉了,证明大家眼力都
------解决方案--------------------
根据报错信息,提示的是子查询的问题。你检查下是否还有其他语句在同时执行着,触发器...

create table [ flow]
(
  [chip sn] nvarchar(10),
  state nvarchar(20)

)

create table [chip input]
(
  [chip sn] nvarchar(10),
  [take over] nvarchar(20)
)
--测试
insert into [chip input] select '11','done' 
insert into [chip input] select '','done'

insert into [ flow] ([chip sn],state)
select [chip sn],'set up' as state from [chip input] where [chip sn] IS NOT NULL AND [take over] = 'done'

这个语句执行没有啥错误,注意以后,表和表的字段名最好不要带有空格。
在MS SQL中,处理有空格的表名或者字段名,就是加"[]",这个是今天刚好注意到的问题.希望对你有所帮助!
------解决方案--------------------
insert into [flow] ([chip sn],[state])
select [chip sn],'set yp' as [state] 
from [chip input] where [chip sn] IS NOT NULL AND [take over] = 'done'
试试
  相关解决方案