sql >> Databasteknik >  >> RDS >> Sqlserver

Att sammanfoga nvarchar(max)-värden verkar inte fungera (+=fungerar som =)

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.



  1. Vilken datatyp ska användas för hashat lösenordsfält och vilken längd?

  2. Hur konverterar jag hh:mm:ss till hh:mm i SQL Server?

  3. SQL-frågakolumnen finns inte fel

  4. Visa hexadecimal dump av sträng