Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Concatenar valores nvarchar(max) não parece funcionar (+=trabalhando como =)


O operador +=só se aplica a tipos de dados numéricos no SQL Server. Documentação da Microsoft aqui

Para concatenação de strings, você precisa escrever a atribuição e a concatenação separadamente.
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;

Além disso, se você estiver executando essa consulta no Management Studio, lembre-se de que há um limite para o tamanho dos dados que ela retornará (inclusive em uma instrução de impressão). Portanto, se as definições de seus módulos excederem esse limite, elas serão truncadas na saída.