Bewerten Sie in T-SQL

Ich habe eine gespeicherte Prozedur, die es erlaubt einen IN-parameter angeben, welche Datenbank zu verwenden. Dann benutze ich eine pre-beschlossen Tabelle in dieser Datenbank für eine Abfrage. Das problem das ich habe ist die Verkettung der Tabellenname, der name der Datenbank innerhalb meiner Fragen. Wenn T-SQL hatte eine bewerten-Funktion, die ich tun könnte etwas wie

eval(@dbname + 'MyTable')

Derzeit bin ich fest erstellen Sie einen string und dann mit exec() zu laufen, dass string als Abfrage. Dies ist unordentlich und ich möchte lieber nicht haben, um eine Zeichenfolge erstellen. Gibt es eine Möglichkeit, die ich auswerten kann, eine variable oder string, damit ich etwas tun kann, wie die folgenden?

SELECT *
FROM eval(@dbname + 'MyTable')

Ich würde es gerne bewerten, so landet es erscheinen wie diese:

SELECT *
FROM myserver.mydatabase.dbo.MyTable
  • d03boy - ich löschte mein Vorschlag, da ich vergaß, dass "Verwenden" kann nicht verwendet werden, die in einer gespeicherten Prozedur. Ich hätte es besser wissen müssen, denn ich lief in dieses einige Monate zurück. Sorry, wenn ich führte Sie hinunter den falschen Pfad.
  • Ich wusste es nicht, konnte nicht verwendet werden, so hab ich das zumindest gelernt, dass viel 🙂
  • d03boy - ich löschte meinen Dritten Vorschlag die Verwendung von OPENROWSET so kann man die Variablen in der Verbindungszeichenfolge oder der Abfrage. Mist.
InformationsquelleAutor Joe Phillips | 2009-03-27
Schreibe einen Kommentar