Falsche Syntax in der Nähe von ‚Sp_executesql‘
-
18-09-2019 - |
Frage
Ich verstehe nicht, warum die folgende ist mir die Fehlermeldung zu geben. Ich dachte, es auf den Kommentar gesetzt Abschnitt verwandt war, aber @SQL ist 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
Lösung
Dies ist der Grund:
-- 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
Sie können nicht nur eine gespeicherte Prozedur aufrufen, ohne eine exec , wenn Sie in einem Block sind.
Andere Tipps
Warum haben Sie diese in einem BEGIN eingeschlossen ... END? Das Ausführen des Sp_executesql externen den Block funktioniert.
Optional können Sie eine exec setzen vor Sp_executesql.
Bei einigen Gelegenheiten hatte ich Master als auch zu verwenden:
exec master..sp_executesql
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow