Hasznos funkció: fnIsGuid

Ismét alkotni kellett, bár most a saját hülyeségem miatt 😀 Van egy táblám, amiben nvarchar(max) típusú oszlopba sokfajta adatot tartok, de nekem csak azok kellenek, amik uniqueidentifier típusúak.

Találtam egy függvényt (ezen az oldalon: http://weblogs.sqlteam.com/mladenp/archive/2005/08/16/7545.aspx), ami ezt a problémát megoldja:

 1CREATE FUNCTION [dbo].[fnIsGUID]
 2(
 3    @input varchar(38)
 4)
 5RETURNS INT
 6AS
 7BEGIN
 8    DECLARE @RetVal int = 0;
 9    DECLARE @Guid varchar(36) = REPLACE(REPLACE(@input, '{', ''), '}', '');
10 
11    SET @RetVal = CASE
12                    WHEN @Guid LIKE
13                    (REPLICATE('[0-9A-Fa-f]',8) + '-' +
14                     REPLICATE('[0-9A-Fa-f]',4) + '-' +
15                     REPLICATE('[0-9A-Fa-f]',4) + '-' +
16                     REPLICATE('[0-9A-Fa-f]',4) + '-' +
17                     REPLICATE('[0-9A-Fa-f]',12)) THEN 1
18                  ELSE 0 END;
19RETURN @RetVal;
20  
21END
22GO