2017-11-26 1 views
0

Ich möchte temporäre Tabelle mit ihrem eindeutigen Namen von einer Select-Abfrage in einer gespeicherten Prozedur in SQL Server erstellen.Syntax zum Erstellen von temporären Tabelle mit ihrem eindeutigen Namen durch Abfrage in gespeicherten Prozedur mit SQL Server

Zum Beispiel: Wann immer ich die Select-Abfrage zu diesem Zeitpunkt ausführen möchten verschiedene temporäre Tabellennamen erstellen.

Lassen Sie klarer sein, beim ersten Mal, wenn ich die ausgewählte Abfrage zu diesem Zeitpunkt testbar Name ausführen wird temptable1, während zum zweiten Mal der Tabellenname wird temptable2 und so weiter.

Ich möchte die Syntax für die Ausführung der SELECT-Abfrage und das Erstellen der Testbar mit ihrem eindeutigen Namen in einer gespeicherten Prozedur in SQL Server kennen.

+2

Warum müssen Sie dies tun? – gotqn

+0

Bcos Ich möchte das gleiche für unterschiedliche Benutzer testable generieren –

Antwort

1

Im Kontext der gespeicherten SQL Server-Prozedur verarbeitet die Engine selbst die Namen der temporären Tabellen.

Sie müssen sich keine Sorgen machen, wenn viele Benutzer die gleiche gespeicherte Prozedur zur gleichen Zeit ausführen - die temporären Objekte können nicht gemeinsam genutzt werden und es werden keine Konflikte auftreten.

Die Benennung einer temporären Tabelle in einer gespeicherten Prozedur mit einem anderen Namen kann auch mithilfe einer dynamischen T-SQL-Anweisung erfolgen. Sie können zum Beispiel eine Sequenz verwenden, um eine solche Nummer zu erhalten und sie mit dem Tabellennamen zu verketten. Aber wenn Sie dies tun, müssen Sie sp_executesql verwenden, um Ihre Tabelle zu erstellen und Dinge damit zu tun. Auf diese Weise kann keine andere gespeicherte Prozedur die Tabelle lesen/ändern, die Sie in der aktuellen gespeicherten Prozedur erstellt haben. Mit anderen Worten, die temporäre Tabelle kann nicht über die Routinen freigegeben werden, wenn sie mit dynamischer T-SQL-Anweisung erstellt wurde. Also, es ist absolut sinnlos, so etwas zu tun.

Verwandte Themen