SourceCode/PROMS/SQL/vefn_CompareTranFormat.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