Função SQL - fn_Split
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.