批量插入

今天做的这个批量插入的存储过程比较简单,所以有很大的缺陷,虽然利用符合条件的字符串是可以实现的;但是有很多缺陷和问题,也没有实际功效,代码先贴在这里,以后修改,呵呵

批量插入
 1 SET ANSI_NULLS ON
2 GO
3 SET QUOTED_IDENTIFIER ON
4 GO
5 -- =============================================
6 -- Author: <Author,,Name>
7 -- Create date: <Create Date,,>
8 -- Description: <Description,,>
9 -- =============================================
10 CREATE PROCEDURE [dbo].[In_tab]
11 @tbname varchar(200),--表名字
12 @clums varchar(8000),--要插入的字段名
13 @value varchar(8000),--插入的值
14 @onechar varchar(200)--每一条记录之间的分割符
15 AS
16 declare @avslue1 varchar(1000)--要插入的一条信息
17 declare @sql nvarchar(2000)--要执行的SQL语句
18 declare @star int,@last int,@err int
19 set @star=1
20 set @err=0
21 BEGIN TRANSACTION
22 while CHARINDEX(@onechar,@value,@star)>0--判断其后是否还有信息
23 begin
24 select @last=CHARINDEX(@onechar,@value,@star)
25 print @last
26 select @avslue1=SUBSTRING(@value,@star,@last-@star)--取得字符串
27 set @sql='insert into '+@tbname+'('+@clums+') values('+@avslue1+')'
28 print @sql
29 exec sp_executesql @sql
30 set @err=@@ERROR+@err
31 set @star=@last+1
32 print @star
33 end
34 SET NOCOUNT ON;
35 if(@err<>0)
36 begin
37 ROLLBACK TRANSACTION--回滚
38 print '失败'
39 end
40 else
41 begin
42 COMMIT TRANSACTION--提交事务
43 print '成功'
44 end

 

posted @ 2011-12-09 17:40  小窝窝头  阅读(180)  评论(0编辑  收藏  举报