CREATE FUNCTION dbo.GetTempTableName (@TableName VARCHAR(256))
RETURNS VARCHAR(256)
AS
BEGIN
RETURN
CASE WHEN @TableName LIKE '%[_][0-9ABCDEF][0-9ABCDEF][0-9ABCDEF][0-9ABCDEF][0-9ABCDEF][0-9ABCDEF][0-9ABCDEF][0-9ABCDEF][0-9ABCDEF][0-9ABCDEF][0-9ABCDEF][0-9ABCDEF]' THEN (SELECT SUBSTRING(name, 1, LEN(name) - leftout - rvid + 2)
FROM (SELECT @TableName AS Name, REVERSE (@TableName) AS RvName) a
CROSS APPLY (SELECT PATINDEX ('%[^0-9ABCDEF]%', rvname) AS RvId) b
CROSS APPLY (SELECT PATINDEX ('%[^_]%', SUBSTRING (rvname, rvid, 200)) AS LeftOut) c) ELSE @TableName END
END