日期:2014-05-17  浏览次数:20821 次

求sql怎么一次用insert 添加多条数据
INSERT INTO BillInfo
           (BillID
           ,BID
           ,IWtime
   ,Storage)
     VALUES
('1',1,'2012-11-19',100)
,('2',1,'2012-11-19',100)
,('3',1,'2012-11-19',100)
,('4',1,'2012-11-19',100)
我试了下上面的方法不能用,请问还有什么方法可以么?
我用的sqlserver 2005的数据库

------解决方案--------------------
INSERT INTO BillInfo
            (BillID
            ,BID
            ,IWtime
    ,Storage)
select '1',1,'2012-11-19',100 union all
select '2',1,'2012-11-19',100 union all
select '3',1,'2012-11-19',100 union all
select '4',1,'2012-11-19',100 
------解决方案--------------------
你用的这种方式只有在sql server 2008及以上版本的数据库才支持。
2005的话可以用这种方式:
INSERT INTO BillInfo
           (BillID
           ,BID
           ,IWtime
   ,Storage)
select '1',1,'2012-11-19',100 union all select '2',1,'2012-11-19',100 union all select '3',1,'2012-11-19',100

------解决方案--------------------
引用:
引用:INSERT INTO BillInfo
            (BillID
            ,BID
            ,IWtime
    ,Storage)
select '1',1,'2012-11-19',100 union all
select '2',1,'2012-11-19',100 ……


union all 是关键字,你可以这样理解:这种用法你应该熟悉把,从B表中选一些数据插入到A表,就这样写  insert into A (column1,column2) select column1,column2 from B。上面那个语句中的select '1',1,'2012-11-19',100 union all
select '2',1,'2012-11-19',100 union all
select '……
你就当作是 select column1,column2 from B。就是说把你要出入的那些数据作为一个集合一次性插入到BillInfo这个表中。至于union all的作用和用法这里就不说了,网上一堆。