См. MSDN: + (Конкатенация строк) (Transact-SQL) :
Так же, как арифметические операции, которые
выполняются с нулевыми значениями, когда
нулевое значение добавляется к известному значению
результат обычно неизвестен
значение, конкатенация строк
операция, которая выполняется с
нулевое значение также должно давать нулевое значение
результат.
Таким образом, чтобы все заработало, рекомендуется инициировать переменные varchar сразу после объявления:
DECLARE @ConcText NVARCHAR(1000)
SET @ConcText = ''
Другой способ решения проблемы concat NULL (если вы не знаете, является ли значение NULL или нет) - ISNULL или COALESCE:
SET @ConcText = ISNULL(@ConcText, '') + N' counter,'
SET @ConcText = COALESCE(@ConcText, '') + N' counter,'