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:
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