0

Função SQL - fn_Split

Posted by Fabio's Blog on 00:11

Função muito utilizada para você criar uma tabela de uma string e inserir dados em massa na base de dados consumindo assim mais o banco do que a aplicação.


Exemplo:

    Tenho uma string "fabio|rente|blog|" e mando para o banco para inserir em uma tabela esses valores.

    Esta função criará uma tabela como abaixo:


        Valor    |    Texto

        -----------------

        1         |    fabio

        2         |    rente

        3         |    blog


    Próximo passo é só fazer a inclusão na tabela.


    Segue abaixo a função para o SQL Server.



DROP  FUNCTION fn_Splitco do que


SET QUOTED_IDENTIFIER OFF

GO

SET ANSI_NULLS OFF

GO

 

CREATE  FUNCTION fn_Split(@text varchar(8000), @delimiter varchar(20) = ' ')

RETURNS @Strings TABLE

(   

  position int IDENTITY PRIMARY KEY,

  value varchar(8000)  

)

AS

BEGIN

 

DECLARE @index int

SET @index = -1

 

WHILE (LEN(@text) > 0)

  BEGIN 

    SET @index = CHARINDEX(@delimiter , @text) 

    IF (@index = 0) AND (LEN(@text) > 0) 

      BEGIN  

        INSERT INTO @Strings VALUES (@text)

          BREAK 

      END 

    IF (@index > 1) 

      BEGIN  

        INSERT INTO @Strings VALUES (LEFT(@text, @index - 1))  

        SET @text = RIGHT(@text, (LEN(@text) - @index)) 

      END 

    ELSE

      SET @text = RIGHT(@text, (LEN(@text) - @index))

    END

  RETURN

END

 

GO

 

SET QUOTED_IDENTIFIER OFF

GO

 

SET ANSI_NULLS ON

GO



Espero que tenham gostado.

Copyright © 2009 Fabio's Blog All rights reserved. Theme by Laptop Geek. | Bloggerized by FalconHive. Distribuído por Templates