Je ne comprends pas pourquoi ce qui suit me donne l'erreur. Je pensais que c'était lié à la section commentée, mais @sql est Nvarchar (4000).
BEGIN sp_executesql N'SELECT ''td''' --sp_executesql @SQL, N'@StartDate DateTime, @EndDate DateTime, @End2 DateTime, @Program varchar(4)', @StartDate, @EndDate, @End2, @Program END
3 Réponses :
Pourquoi avez-vous cela ci-joint dans un début ... fin? Exécution du sp_executeql externe Le bloc fonctionnera. P>
éventuellement, vous pouvez mettre un EXEC STRY> avant SP_EXECUTSQL. P>
C'est pourquoi:
-- This works just fine: BEGIN -- You must have an exec before your sp_executesql or it will not work in a block exec sp_executesql N'SELECT ''td''' END
Vous pouvez appeler un processus stocké sans ni exécuté, mais uniquement lorsque l'appel à la procédure stockée est la seule instruction dans le bloc.
Ce doit être la première déclaration, pas nécessairement le seul.
À certaines occasions, je devais utiliser Master aussi bien:
exec master..sp_executesql