declare @s nvarchar(1000)
set @s='a,b,c,d,e,f,g'
set @s='create table ##t (id int identity(1,1),col nvarchar(10)) insert into ##t(col) select '''+replace(@s,',',''' as col union all select ''')+''' select * from ##t drop table ##t'
exec(@s)
--Try
CREATE FUNCTION SplitStr1 (@splitString varchar(8000), @separate varchar(10))
RETURNS @returnTable table(num int, col_Value varchar(20))
AS
BEGIN
declare @thisSplitStr varchar(20)
declare @thisSepIndex int
declare @lastSepIndex int
declare @num int
set @lastSepIndex = 0
set @num = 1
if Right(@splitString ,len(@separate)) <> @separate set @splitString = @splitString + @separate
set @thisSepIndex = CharIndex(@separate,@splitString ,@lastSepIndex)
while @lastSepIndex <= @thisSepIndex
begin
set @thisSplitStr = SubString(@splitString ,@lastSepIndex,@thisSepIndex-@lastSepIndex)
set @lastSepIndex = @thisSepIndex + 1
set @thisSepIndex = CharIndex(@separate,@splitString ,@lastSepIndex)
insert into @returnTable values(@num, @thisSplitStr)
set @num = @num + 1
end
return
END
INSERT INTO N_ty SELECT * FROM dbo.SplitStr1('a,b,c,d,e,f,g', ',')