MS SQL Server - nie działa PRINT, gdy jedna ze zmiennych ma wartość NULL

0

Mam problem w sytuacji gdy zmienna @StartDate lub @EndDate ma wartość NULL to klauzula PRINT nie zwraca na konsole żadnej wartości.

PRINT ' start date: ' + CAST(ISNULL(@StartDate, '9999-01-30 00:00:00') AS VARCHAR(250)) +
            ' end date: ' + CAST(ISNULL(@EndDate, '9999-01-30 00:00:00') AS VARCHAR(250))

Jak mógłbym poprawić powyższy skrypt tak by wyświetlić zawartość zmiennych bez względu na ich zawartość?

0

Nie rozumiem o co pytasz, ponieważ to musi zadziałać prawidłowo.
Poza tym, zamiast bawić się w print (tj. debugger babci) po prostu użyj debuggera w Management Studio czy innym Visualu...

5

Uściślijmy print działa tylko łaczenie stringów z null daje null, a null nie ma reprezentacji tekstowej, więc "nic" się nie wyświetla.

Możesz ustawić SET CONCAT_NULL_YIELDS_NULL OFF; w skrypcie i wtedy null + 'aaa' = 'aaa'

https://docs.microsoft.com/en-us/sql/t-sql/statements/set-concat-null-yields-null-transact-sql?view=sql-server-ver15

1 użytkowników online, w tym zalogowanych: 0, gości: 1