Иногда от него больше проблем, чем пользы:
Чуть поразмыслив можно понять, почему первый SET неверный, но глядя на содержимое @decWorkingDate, этот вывод сделать труднее. На статике компилятор/парсер просто выдал бы ошибку.
А в данном конкретном случае даже юнит-тесты не помогли бы. Да и сложно их для SQL писать.
DECLARE @inYear int
DECLARE @inMonth int
DECLARE @decWorkingDate datetime
-- простенькую, понятную конструкцию
SET @decWorkingDate = cast(@inYear + '-' + @inMonth + '-' + '01' AS datetime)
-- пришлось заменить на более громоздкую и мозголомную:
SET @decWorkingDate = convert(datetime, str(@inYear) + '-' + str(@inMonth) + '-' + '01', 102)
Чуть поразмыслив можно понять, почему первый SET неверный, но глядя на содержимое @decWorkingDate, этот вывод сделать труднее. На статике компилятор/парсер просто выдал бы ошибку.
А в данном конкретном случае даже юнит-тесты не помогли бы. Да и сложно их для SQL писать.