sql >> Base de Datos >  >> RDS >> Sqlserver

La concatenación de valores nvarchar (max) no parece funcionar (+=trabajando como =)

El operador +=solo se aplica a tipos de datos numéricos en SQL Server. Documentación de Microsoft aquí

Para la concatenación de cadenas, debe escribir la asignación y la concatenación por separado.

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;

Además, si está ejecutando esta consulta en Management Studio, tenga en cuenta que existe un límite en el tamaño de los datos que devolverá (incluso en una instrucción de impresión). Entonces, si las definiciones de sus módulos exceden este límite, se truncarán en la salida.