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
War es hilfreich?

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
scroll top