详细内容
游标的常用方式
发布日期:2011-06-30     点击:2925     字体:[ ]

存储过程的功能是批量增加用户,用到了一个自定义函数split,里面用到了游标Cursor

 

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:  <zdbase>
-- Create date: <2011-6-30>
-- Description: <批量新增用户>
-- =============================================
CREATE PROCEDURE Scan_User_Insert_Batch
@pList nvarchar(max) =''

AS
BEGIN
 
declare @pEmail nvarchar(128)
declare cursor_insert cursor
for
select oid from split(@pList,',')
open cursor_insert
fetch next from cursor_insert into @pEmail

while @@fetch_status = 0
begin
insert into tblUser(OID,Email) values(newid(),@pEmail)
fetch next from cursor_insert into @pEmail
end

close cursor_insert
deallocate cursor_insert

END
GO

 

 

里面用到的Split函数,功能是按指定分隔符分割字符串:

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go

 

Create FUNCTION [dbo].[split](@SourceSql varchar(8000),@StrSeprate varchar(10))
returns @temp table(oid varchar(128))
--实现split功能 的函数
as
begin
declare @i int
set @SourceSql=rtrim(ltrim(@SourceSql))
set @i=charindex(@StrSeprate,@SourceSql)
while @i>=1
begin
insert @temp values(left(@SourceSql,@i-1))
set @SourceSql=substring(@SourceSql,@i+1,len(@SourceSql)-@i)
set @i=charindex(@StrSeprate,@SourceSql)
end
if @SourceSql<>'\'
insert @temp values(@SourceSql)
return
end

用户评论
昵称 
内容  *
验证码   
   
Copyright © 2010 zdbase.com All Rights Reserved. 苏ICP备15039389号 可人软件设计