Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Конкатенирането на стойности на nvarchar(max) изглежда не работи (+=работи като =)

Операторът +=се прилага само за числови типове данни в SQL Server. Документация на Microsoft тук

За конкатенация на низ трябва да напишете присвояването и конкатенацията отделно.

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;

Освен това, ако изпълнявате тази заявка в Management Studio, имайте предвид, че има ограничение за размера на данните, които тя ще върне (включително в израз за печат). Така че, ако дефинициите на вашите модули надхвърлят това ограничение, те ще бъдат съкратени в изхода.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да премахна всички ограничения на външния ключ във всички таблици?

  2. SQL Server:Заявка бързо, но бавно от процедура

  3. sql като заявка бавна, ако се използва деклариран параметър, но бърза, ако не

  4. Как да ИЗБЕРЕТЕ *, но без имената на колони трябва да са уникални във всеки изглед

  5. SQL редове към колони