Operatorn +=gäller endast för numeriska datatyper i SQL Server. Microsoft-dokumentation här
För strängsammansättning måste du skriva uppgiften och sammanfogningen separat.
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;
Om du kör den här frågan i Management Studio, tänk också på att det finns en gräns för storleken på data som den kommer att returnera (inklusive i ett utskriftsutdrag). Så om definitionerna av dina moduler överskrider denna gräns, kommer de att trunkeras i utdata.