aus der
SQL-Server Hilfe
Transact-SQL unterstützt zwei Methoden für die Erstellung von SQL-Anweisungen zur Laufzeit in Transact-SQL-Skripts, gespeicherten Prozeduren und Triggern:
Verwenden der gespeicherten Systemprozedur sp_executesql zur Ausführung einer Unicode-Zeichenfolge. sp_executesql unterstützt die Parameterersetzung wie bei einer RAISERROR-Anweisung.
Verwenden der EXECUTE-Anweisung zur Ausführung einer Zeichenfolge. Die EXECUTE-Anweisung unterstützt keine Parameterersetzung in der ausgeführten Zeichenfolge.
Also hat man mit
sp_executesql schon mal das Problem mit den Parametern abgehakt.