57 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
			
		
		
	
	
			57 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
/*
 | 
						|
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 <START]\v0 6.8, \ul FUNCTIONAL TEST OF 0\u8209?RIC\u8209?2201\ulnone \v #Link:Transition:11 794 78920[END>\v0 .'
 | 
						|
--SET @Text = 'IMPLEMENT \v <START]\v0 EOP\u8209?8 rev, \ul FUNCTIONAL RECOVERY PROCEDURE\ulnone \ulnone\v #Link:Transition:0 127712 17827[END>\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('<START]'),@rtext,len(@text)-@Index4)
 | 
						|
	SET @index0 = len(@text) - CHARINDEX(' ',@rtext,@index1+1)-1
 | 
						|
	SET @index1 = len(@text) - @index1+2
 | 
						|
	SET @index2 = CHARINDEX(' ',@text,@index1)+1
 | 
						|
	SET @prefix = substring (@Text,@index0 , @index2-@index0)
 | 
						|
	--print 
 | 
						|
	SET @index3 = len(@text) - CHARINDEX(' ',@rtext,len(@text)-@Index4)-1
 | 
						|
	SET @index5 = CHARINDEX('[END>',@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 |