Frage:
In einer SELECT-Anweisung soll der Tabellenname durch eine lokale Variable ersetzt werden.
Lösung:
In SQL-Anweisungen lassen Variablen sich zwar in Ausdrücken, nicht aber anstelle von Objektnamen oder Schlüsselwörtern verwenden.
Um den Tabellennamen in einer SQL-Anweisung erst bei der Ausführung zu ersetzen, muss mit dynamischem SQL gearbeitet werden.
Dazu wird das SQL-Statement bei der Ausführung zu einem String zusammengesetzt und mit Execute oder sp_executesql ausgeführt.
Zum Thema „Dynamisches SQL“ hat Frank Kalis den interessanten Artikel „Dynamisches SQL – Fluch und Segen“ bereitgestellt.