36 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
| USE [VEPROMS]
 | |
| GO
 | |
| /****** Object:  UserDefinedFunction [dbo].[vefn_CompareTranFormat]    Script Date: 02/26/2010 07:05:49 ******/
 | |
| SET ANSI_NULLS ON
 | |
| GO
 | |
| SET QUOTED_IDENTIFIER ON
 | |
| GO
 | |
| /* 
 | |
|   Determines if two transition formats are same string.
 | |
| 	returns 0 if identical, 1 if similar (range for range, item for item), 2 if totally different
 | |
| */
 | |
| ALTER FUNCTION [dbo].[vefn_CompareTranFormat] (@FormatID int, @NewFormatID int, @TranType int) RETURNS int
 | |
| WITH EXECUTE AS OWNER
 | |
| AS
 | |
| BEGIN
 | |
| 	--
 | |
| 	IF @FormatID = @NewFormatID
 | |
| 		RETURN @TranType
 | |
| 	DECLARE @TransFormat varchar(max)
 | |
| 	DECLARE @NewTransFormat varchar(max)
 | |
| 	SET @TransFormat = isnull(.dbo.vefn_GetTransFormat(@FormatID, @TranType),'')
 | |
| 	SET @NewTransFormat = isnull(.dbo.vefn_GetTransFormat(@NewFormatID, @TranType),'')
 | |
| 	RETURN CASE 
 | |
| 		WHEN @TransFormat = @NewTransFormat THEN 0   -- transition formats are identical
 | |
| 		WHEN @TransFormat LIKE '%{Last Step}%' THEN
 | |
| 			CASE
 | |
| 				WHEN @NewTransFormat LIKE '%{Last Step}%' THEN 1  -- both ranges, but different format
 | |
| 				ELSE 2		-- totally different format, not even same type (was single, changed to range)
 | |
| 			END
 | |
| 		ELSE
 | |
| 			CASE
 | |
| 				WHEN @NewTransFormat LIKE '%{Last Step}%' THEN 2 -- totally different format, not even same type (was range, changed to single)
 | |
| 				ELSE 1	-- both single, but different format
 | |
| 			END
 | |
| 	END
 | |
| END |