CREATE FUNCTION DBO.ISUNIQUEIDENTIFIER
(
@InputVal nvarchar(50)
)
RETURNS SmallInt AS
BEGIN
RETURN
CASE WHEN SERVERPROPERTY('PRODUCTMAJORVERSION') >=11 THEN
CASE WHEN TRY_CONVERT(UNIQUEIDENTIFIER,@InputVal) IS NOT NULL THEN 1 ELSE 0 END
ELSE (
CASE WHEN LEN(@InputVal) = 36 AND @InputVal LIKE
'[A-F0-9][A-F0-9][A-F0-9][A-F0-9]'
+ '[A-F0-9][A-F0-9][A-F0-9][A-F0-9]'
+ '-[A-F0-9][A-F0-9][A-F0-9][A-F0-9]'
+ '-[A-F0-9][A-F0-9][A-F0-9][A-F0-9]'
+ '-[A-F0-9][A-F0-9][A-F0-9][A-F0-9]'
+ '-[A-F0-9][A-F0-9][A-F0-9][A-F0-9]'
+ '[A-F0-9][A-F0-9][A-F0-9][A-F0-9]'
+ '[A-F0-9][A-F0-9][A-F0-9][A-F0-9]' THEN 1 ELSE 0 END )
END
END
Today, I had a requirement to check a value can be converted as uniqueidentifier datatype or not, so quickly come up with the below function. Hope this would help you if you come across similar requirement in future.
Code:
I’d like to grow my readership. If you enjoyed this blog post, please share it with your friends!