[SQL] 待整理3

Create proc procedureName
     @orderId int
    ,@name varchar(20)
    ,@count int
as
begin

    Declare @id int
    declare @tb table(postid int)
    BEGIN TRANSACTION
    insert into A value(@orderId)
    Select @id=@@identity
    SET @count = 0
    SELECT @count = count(*) FROM   dbo.f_split(A,B,C,D,E,,)
   WHILE @count > 0
   begin
     insert into @tb select @id
     set @count=@count-1
   end
    --select * from dbo.f_split(A,B,C,D,E,,)


    insert into zibiao values(select * from @tb,select * from dbo.f_split(A,B,C,D,E,,),select * from dbo.f_split(A,B,C,D,E,,))



    --Insert into B values(@id,@name)


    IF @@error <> 0 --发生错误
    BEGIN
        ROLLBACK TRANSACTION
        RETURN 0
    END
    ELSE
    BEGIN
        COMMIT TRANSACTION
        RETURN 1 --执行成功
    END
end

 

下面的sql文是个函数,功能是:分析字符串,根据特殊符号整理插入到一个表结构里

create function f_split
(
     @SourceSql varchar(8000)
    ,@StrSeprate varchar(10)
)
returns @temp table(a varchar(100))
--实现split功能 的函数
--date    :2005-4-20
--Author :Domino
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

[SQL] 待整理3,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。