MSSQL Как проверить изменилась ли переменная?

Tsql теория > MSSQL Как проверить изменилась ли переменная?
01.04.2013 14:02:25


Наиболее часто встречающиеся слова в статье:

[oldState] [newState] [DECLARE] [VARCHAR] [Вариант] [''Ivan''] [''IvaN''] [VARBINARY] [преобразований] [           ]


Статья:

-- Вариант 1

DECLARE @oldState VARCHAR(10) = 'Ivan'
DECLARE @newState VARCHAR(10) = 'IvaN'
SELECT  CAST(CASE WHEN CASE WHEN @oldState IS NULL THEN 0
                            ELSE 1
                       END <> CASE WHEN @newState IS NULL THEN 0
                                   ELSE 1
                              END
                       OR @oldState <> @newState THEN 1
                  ELSE 0
             END AS BIT)
GO

 

-- Вариант 2 (без лишних преобразований типов)           

DECLARE @oldState VARCHAR(10) = 'Ivan'
DECLARE @newState VARCHAR(10) = 'IvaN'
        
SELECT  CAST(CASE WHEN (
                         @oldState IS NULL
                         AND @newState IS NOT NULL
                       )
                       OR (
                            @oldState IS NOT NULL
                            AND @newState IS NULL
                          )
                       OR @oldState <> @newState THEN 1
                       -- Строгое соответствие ниже
                       -- OR CAST(@oldState AS VARBINARY(MAX)) <> CAST(@newState AS VARBINARY(MAX)) THEN 1
                  ELSE 0
             END AS BIT)
GO