L'operatore +=si applica solo ai tipi di dati numerici in SQL Server. Documentazione Microsoft qui
Per la concatenazione di stringhe, è necessario scrivere l'assegnazione e la concatenazione separatamente.
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;
Inoltre, se si esegue questa query in Management Studio, tenere presente che esiste un limite alla dimensione dei dati che verranno restituiti (incluso in un'istruzione print). Quindi, se le definizioni dei tuoi moduli superano questo limite, verranno troncate nell'output.