syntaxe incorrecte près de « sp_executesql »
-
18-09-2019 - |
Question
Je ne comprends pas pourquoi ce qui suit est de me donner l'erreur. Je pensais qu'il é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
La solution
Voici 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 ne pouvez pas simplement appeler un proc stocké sans exec lorsque vous êtes dans un bloc.
Autres conseils
Pourquoi avez-vous cette enfermé dans un BEGIN ... END? Exécution du bloc externe sp_executesql fonctionnera.
En option, vous pouvez mettre un exec avant sp_executesql.
À certaines occasions, je devais utiliser maître ainsi:
exec master..sp_executesql
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow