Operator +=dotyczy tylko liczbowych typów danych w SQL Server. Dokumentacja Microsoft tutaj
W przypadku konkatenacji ciągów należy osobno napisać przypisanie i konkatenację.
DECLARE @sql nvarchar(max);
SELECT @sql = N'';
SELECT @sql = @sql + [definition] + N'
GO
'
FROM sys.sql_modules
WHERE OBJECT_NAME(object_id) LIKE 'dt%'
ORDER BY OBJECT_NAME(object_id);
PRINT @sql;
Ponadto, jeśli uruchamiasz tę kwerendę w Management Studio, pamiętaj, że istnieje limit rozmiaru danych, które zostaną zwrócone (w tym w instrukcji print). Więc jeśli definicje Twoich modułów przekroczą ten limit, zostaną one obcięte na wyjściu.