Как проверить, является ли строка уникальным идентификатором? - PullRequest
49 голосов
/ 10 января 2011

Есть ли эквивалент для IsDate или IsNumeric для uniqueidentifier (SQL Server)? Или есть что-нибудь эквивалентное (C #) TryParse?

В противном случае мне придется написать свою собственную функцию, но я хочу убедиться, что я не изобретаю колесо заново.

Сценарий, который я пытаюсь охватить, следующий:

SELECT something FROM table WHERE IsUniqueidentifier(column) = 1

Ответы [ 12 ]

0 голосов
/ 29 сентября 2016

Я использую:

ISNULL(convert(nvarchar(50), userID), 'NULL') = 'NULL'
0 голосов
/ 10 января 2011

Вы можете написать свой UDF.Это простое приближение, позволяющее избежать использования сборки SQL-CLR.

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

Затем вы можете улучшить ее, чтобы проверить, что это только значения HEX.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...