Je suis en train d'écrire une dynamique SQL:SQL Server/SSIS - Dynamic T-SQL, NVARCHAR (MAX) Différence
DECLARE @sql NVARCHAR(MAX)
SET @sql = '...'
EXEC sp_executesql @sql
Si j'exécute ceci de SSMS, la requête s'exécute avec succès, car il est inférieur à 8000 (7787 pour être précis) caractères. Si j'exécute cela à partir de SSIS (en utilisant une connexion ADO.NET) la requête échoue car NVARCHAR(MAX)
est l'équivalent de NVARCHAR(4000)
. Je comprends que c'est quelque chose à voir avec la compatibilité - la connexion de SSIS doit supporter plus que SQL Server.
Quelles sont mes options de contournement?
Je suis d'accord avec Paddy, n'utilisez pas SQL dynamique si vous n'en avez absolument pas besoin. Et l'option 2 a certainement du sens aussi. – grapefruitmoon
Je suis complètement d'accord. Ceci est l'un de ces morceaux de code qui a frappé pendant quelques années dans le besoin désespéré d'un rajig approprié. – youwhut
@youwhut - bonne chance, auquel cas :) – Paddy