/* select cc.ContentID--, Text , T1.* from (select * from contents where text like '%#Link:Tran%' and contentID not in(Select fromid from transitions)) cc cross apply vefn_FindTransPrefixAndSuffix(cc.text) t1 */ alter FUNCTION [dbo].[vefn_FindTransPrefixAndSuffix](@text varchar(MAX)) RETURNS @Transitions TABLE ( Prefix nvarchar(Max), Value nvarchar(Max), Suffix nvarchar(Max) ) WITH EXECUTE AS OWNER AS BEGIN -- DECLARE @text nvarchar(max) --SET @Text = 'PERFORM a Source Check PER Section \v \v0 .' --SET @Text = 'IMPLEMENT \v \v0' DECLARE @index0 int DECLARE @index1 int DECLARE @index2 int DECLARE @index3 int DECLARE @index4 int DECLARE @index5 int DECLARE @prefix nvarchar(max) DECLARE @value nvarchar(max) DECLARE @suffix nvarchar(max) DECLARE @rtext nvarchar(max) SET @rtext = Reverse(@Text) SET @index4 = CHARINDEX(' #Link:Transition' , @Text) WHILE (@index4 > 0) BEGIN SET @index1 = CHARINDEX(Reverse('',@text, @index3)+5 SET @index5 = charindex(' ',@text,@index5)+1 if(@Index5 = 1) Set @Index5 = len(@text)+1 --print @index5 SET @value=substring(@text,@index2,@index3-@index2) --print SET @suffix = substring(@text,@index3,@index5-@index3) --print '{' + @prefix + '}{' + @value + '}{' + @suffix + '}' INSERT INTO @Transitions VALUES (@Prefix,@Value,@Suffix) SET @index4 = CHARINDEX(' #Link:Transition' , @Text, @index5) END RETURN END