Dans votre requête SQL, vous avez déclaré la variable @SQL1 comme NVARCHAR(Max) mais sont confrontés à un problème où il ne stocke que 4 000 caractères. Cela se produit en raison d'un comportement subtil dans TSQL concernant la conversion automatique des types de données lors de la concaténation.
Comprendre le problème :
Solution :
Pour garantir que @SQL1 devienne NVARCHAR(Max), vous devez vous assurer que les données que vous concaténez sur le côté droit sont également NVARCHAR(Max). Une façon de procéder consiste à convertir explicitement toutes les constantes ou variables en NVARCHAR(Max) avant la concaténation.
Par exemple, le code suivant entraînera correctement que @SQL1 soit NVARCHAR(Max) :
SET @SQL1 = N''; SET @SQL1 = @SQL1 + CAST('SELECT DISTINCT Venue...,' AS NVARCHAR(MAX));
Cela garantit que l'instruction SELECT est concaténée avec une chaîne qui a le type de données NVARCHAR(Max), forçant le résultat à être également NVARCHAR(Max).
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!