Sql N'61d086f0-80e3-482f-ab6a-7279ab18cc3d'类似替换(将(0转换为二进制)作为唯一标识符)、'0'、'0'、'0-9a-fA-F]')然后是1其他0结束)“我在校外种植了100-200个勿忘我”是我最喜欢的指南请解释一下你
Sql N'61d086f0-80e3-482f-ab6a-7279ab18cc3d'类似替换(将(0转换为二进制)作为唯一标识符)、'0'、'0'、'0-9a-fA-F]')然后是1其他0结束)“我在校外种植了100-200个勿忘我”是我最喜欢的指南请解释一下你,sql,sql-server,Sql,Sql Server,N'61d086f0-80e3-482f-ab6a-7279ab18cc3d'类似替换(将(0转换为二进制)作为唯一标识符)、'0'、'0'、'0-9a-fA-F]')然后是1其他0结束)“我在校外种植了100-200个勿忘我”是我最喜欢的指南请解释一下你的代码是什么以及它是如何实现的。嗨,它不会检查字符对于UUID是否有效,但会检查UUID适合的字符数。。。下划线是“任意字符”的通配符,所以通过使用它们的倍数,可以指定字符串的长度。因此LIKE语句与UUID的模式匹配。如果它不是UUID模式,
N'61d086f0-80e3-482f-ab6a-7279ab18cc3d'类似替换(将(0转换为二进制)作为唯一标识符)、'0'、'0'、'0-9a-fA-F]')然后是1其他0结束)“我在校外种植了100-200个勿忘我”是我最喜欢的指南请解释一下你的代码是什么以及它是如何实现的。嗨,它不会检查字符对于UUID是否有效,但会检查UUID适合的字符数。。。下划线是“任意字符”的通配符,所以通过使用它们的倍数,可以指定字符串的长度。因此LIKE语句与UUID的模式匹配。如果它不是UUID模式,那么它将返回NULL。
SELECT something FROM table WHERE IsUniqueidentifier(column) = 1
CREATE FUNCTION dbo.isuniqueidentifier (@ui varchar(50))
RETURNS bit AS
BEGIN
RETURN case when
substring(@ui,9,1)='-' and
substring(@ui,14,1)='-' and
substring(@ui,19,1)='-' and
substring(@ui,24,1)='-' and
len(@ui) = 36 then 1 else 0 end
END
GO
SELECT something
FROM table1
WHERE column1 LIKE '[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]-[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]-[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]-[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]-[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]';
SELECT something
FROM table1
WHERE column1 LIKE REPLACE('00000000-0000-0000-0000-000000000000', '0', '[0-9a-fA-F]');
SELECT 1 WHERE @StringToCompare LIKE
REPLACE('00000000-0000-0000-0000-000000000000', '0', '[0-9a-fA-F]');
SELECT something
FROM your_table
WHERE TRY_CONVERT(UNIQUEIDENTIFIER, your_column) IS NOT NULL;
;WITH T(C)
AS (SELECT '5D944516-98E6-44C5-849F-9C277833C01B'
UNION ALL
SELECT '{5D944516-98E6-44C5-849F-9C277833C01B}'
UNION ALL
SELECT '5D944516-98E6-44C5-849F-9C277833C01BXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
UNION ALL
SELECT '{5D944516-98E6-44C5-849F-9C277833C01B}ssssssssss'
UNION ALL
SELECT 'ÀD944516-98E6-44C5-849F-9C277833C01B'
UNION ALL
SELECT 'fish')
SELECT CASE
WHEN C LIKE expression + '%'
OR C LIKE '{' + expression + '}%' THEN CAST(C AS UNIQUEIDENTIFIER)
END
FROM T
CROSS APPLY (SELECT REPLACE('00000000-0000-0000-0000-000000000000', '0', '[0-9a-fA-F]') COLLATE Latin1_General_BIN) C2(expression)
WHERE C LIKE expression + '%'
OR C LIKE '{' + expression + '}%'
PATINDEX('%'+REPLACE('00000000-0000-0000-0000-000000000000', '0', '[0-9a-fA-F]')+'%',@StringToCompare) > 0
ISNULL(convert(nvarchar(50), userID), 'NULL') = 'NULL'
CREATE FUNCTION [dbo].[IsGuid] (@input varchar(50))
RETURNS bit AS
BEGIN
RETURN
case when @input like '[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]-[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]-[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]-[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]-[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]'
then 1 else 0 end
END
GO
/*
Usage:
select [dbo].[IsGuid]('123') -- Returns 0
select [dbo].[IsGuid]('ebd8aebd-7ea3-439d-a7bc-e009dee0eae0') -- Returns 1
select * from SomeTable where dbo.IsGuid(TableField) = 0 -- Returns table with all non convertable items!
*/
SELECT [A].[INPUT],
CAST([A].[INPUT] AS [UNIQUEIDENTIFIER])
FROM (
SELECT '5D944516-98E6-44C5-849F-9C277833C01B' Collate Latin1_General_100_BIN AS [INPUT]
UNION ALL
SELECT '{5D944516-98E6-44C5-849F-9C277833C01B}'
UNION ALL
SELECT '5D944516-98E6-44C5-849F-9C277833C01BXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
UNION ALL
SELECT '{5D944516-98E6-44C5-849F-9C277833C01B}ssssssssss'
UNION ALL
SELECT 'ÀD944516-98E6-44C5-849F-9C277833C01B'
UNION ALL
SELECT 'fish'
) [A]
WHERE PATINDEX('[^0-9A-F-{}]%', [A].[INPUT]) = 0
SELECT 1 WHERE @StringToCompare
RLIKE REPLACE('00000000-0000-0000-0000-000000000000', '0', '[0-9a-fA-F]');
DECLARE @guid_string nvarchar(256) = 'ACE79678-61D1-46E6-93EC-893AD559CC78'
SELECT
CASE WHEN @guid_string LIKE '________-____-____-____-____________'
THEN CONVERT(uniqueidentifier, @guid_string)
ELSE NULL
END