Hasznos funkció: fnIsGuid

Ismét alkotni kellett, bár most a saját hülyeségem miatt Smile 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:

CREATE FUNCTION [dbo].[fnIsGUID]
(
	@input varchar(38)
)
RETURNS INT
AS
BEGIN
	DECLARE @RetVal int = 0;
	DECLARE @Guid varchar(36) = REPLACE(REPLACE(@input, '{', ''), '}', '');

	SET @RetVal = CASE 
					WHEN @Guid LIKE 
					(REPLICATE('[0-9A-Fa-f]',8) + '-' + 
					 REPLICATE('[0-9A-Fa-f]',4) + '-' + 
					 REPLICATE('[0-9A-Fa-f]',4) + '-' + 
					 REPLICATE('[0-9A-Fa-f]',4) + '-' + 
					 REPLICATE('[0-9A-Fa-f]',12)) THEN 1 
				  ELSE 0 END;
RETURN @RetVal;
 
END
GO

 

Add comment