programing

SQL에서 빈 GUID 확인

lastcode 2023. 6. 21. 22:38
반응형

SQL에서 빈 GUID 확인

저장 프로시저의 인수가 빈 GUID인지 확인하려면 어떻게 해야 합니까?

SELECT CAST(CAST(0 AS BINARY) AS UNIQUEIDENTIFIER)

그러면 빈 가이드가 반환될 것입니다.

한 명의 출연진을 절약하는 것은 훨씬 더 짧습니다.

SELECT CAST(0x0 AS UNIQUEIDENTIFIER)

그래서 그걸 확인하기 위해서, 당신은.

IF @GuidParam = CAST(CAST(0 AS BINARY) AS UNIQUEIDENTIFIER)
BEGIN
   --Guid is empty
END

빈 guid는 절대 변하지 않기 때문에 다른 확실한 방법은 단순히 사용하는 것입니다.00000000-0000-0000-0000-000000000000계산하는 것보다.

If @Param = '00000000-0000-0000-0000-000000000000'
...

또는 절차에 있는 경우 상수로 작동하도록 파라미터를 설정할 수 있습니다.

Declare @EmptyGuid uniqueidentifier
Set @EmptyGuid = '00000000-0000-0000-0000-000000000000'

또는 단순히 위의 상수 값을 반환하는 스칼라 사용자 정의 함수를 만들 수 있습니다(또는 Meiscooldude 솔루션에서와 같이 다시 계산).

DECLARE @EmptyGuid UNIQUEIDENTIFIER = 0x0
DECLARE @NonEmpty UNIQUEIDENTIFIER = NEWID()
IF @EmptyGuid = 0x0 PRINT 'Empty'
IF @NonEmpty = 0x0 PRINT 'Empty' ELSE PRINT 'NonEmpty'

인쇄 예정

비어 있지 않음

Empty Guid는 다음과 같이 만들 수 있습니다.

DECLARE @EmptyGuid UNIQUEIDENTIFIER
SET @EmptyGuid = (SELECT CAST(CAST(0 AS BINARY) AS UNIQUEIDENTIFIER))

-- Single result is 00000000-0000-0000-0000-000000000000
SELECT @EmptyGuid

사용하다

DECLARE @param UNIQUEIDENTIFIER = NEWID();
--DECLARE @param UNIQUEIDENTIFIER = '00000000-0000-0000-0000-000000000000'

IF (CONVERT(UNIQUEIDENTIFIER, 0x00)) = @param
    PRINT 'Empty';
ELSE
    PRINT 'Not Empty';
DECLARE @SupplierDataHubId  uniqueidentifier=null

 set @SupplierDataHubId=(select HubId from dbo.tblSupplierData where fldUpc='603259049389' OR   fldEan='6032590493895555')
if (@SupplierDataHubId is not null)
 begin                 
 print('yes');
end

else 
print 'no'

언급URL : https://stackoverflow.com/questions/3092999/check-for-empty-guid-in-sql

반응형