Legt ihr die Prozedur aber als globales temporäres Objekt an, so wird auch sie in der zweiten Session gefunden:
DROP PROCEDURE IF EXISTS ##sp_temp
CREATE PROCEDURE ##sp_temp AS
EXEC ##sp_temp
Diese könnt ihr nun auch in einer zweiten Session ausführen:
Temporäre Objekte können hilfreich sein, um Zwischenergebnisse bei größeren Prozessen zu speichern oder um Prozeduren einzusetzen, die ihr nicht außerhalb eines Prozesses weiterverwenden möchtet. Es gilt dabei natürlich den Scope des Objekts zu beachten und zu unterscheiden, ob das Objekt auch außerhalb der Session verfügbar ist. Referenzen
Dokumentation von Microsoft zu temporären Tabellen Dokumentation von Microsoft zu temporären Prozeduren
Sql Temporäre Tabelle E
Was sind temporäre Objekte? Grundsätzlich ermöglicht euch der SQL Server das Anlegen temporärer Objekte, mit denen ihr arbeiten könnt. Das ist praktisch, da ihr nicht unbedingt jedes Zwischenergebnis oder jede Hilfstabelle in eurer Datenbank persistieren möchtet, wenn ihr mit größeren Datenmengen arbeitet. Temporär bedeutet dabei, dass die Tabellen in der tempdb gespeichert werden und automatisch gelöscht werden. Wann sie gelöscht werden, ist unterschiedlich, das möchten wir uns gleich noch genauer ansehen. Sql temporäre tabelle en. Es gibt aber nicht nur die Möglichkeit, Tabellen temporär anzulegen, das funktioniert auch mit Prozeduren. Wie könnt ihr mit temporären Objekten arbeiten? Grundsätzlich gibt es zwei Arten von temporären Objekten im SQL Server: lokale und globale temporäre Objekte. Ihr könnt temporäre Objekte daran erkennen, dass ihre Namen mit einer Raute (#) beginnen. Ob ein Objekt lokal oder global ist, erkennt ihr daran, ob es eine oder zwei Rauten vorangestellt hat. Sehen wir uns einmal die Unterschiede zwischen beiden Objekten an.
Sql Temporäre Tabelle En
Erzeugung einer temporären Tabelle
Temporäre Tabellen können wie jede andere Tabelle mit dem Befehl CREATE TABLE definiert und erzeugt werden. Beim Namen muss lediglich eine oder zwei Rauten (# oder ##) vorangestellt werden. Egal mit welcher Datenbank man gerade arbeitet, temporäre Tabellen werden intern in der Systemdatenbank tempdb gespeichert und sind aber überall verfügbar. Über den Speicherort braucht man sich in der Praxis keine Gedanken machen, da das Datenbankmanagementsystem sich automatisch darum kümmert. Nach der Beendigung der Datenbank-Session werden die Tabellen vom Datenbanksystem automatisch gelöscht und die Daten gehen verloren. Ein echter Vorteil erschließt sich erst mit der Möglichkeit der direkten Erzeugung von temporär gefüllten Tabellen aus einem Select-Befehl. Das sieht dann zum Beispiel so aus:
SELECT * INTO #tempdaten FROM tabelle
So hat man direkt die von einem Select gelieferten Daten in einer temporären Tabelle zwischengespeichert. Sql temporäre tabelle 2016. Man beachte, die Reihenfolge der Schlüsselwörter: erst select, dann into und zum Schluss from (und nicht erst from und dann into, sonst geht's nicht).
Veröffentlicht am 27. 01. 2013
| Comments
Am Freitag war ich mal wieder in der Situation etwas an einer Datenbank ändern zu müssen. Und das ohne Netz und doppelten Boden. Sprich die Datensicherung war schon ein paar Stunden alt und für eine Testdatenbank war keine Zeit. Da die Änderungen nicht ganz ohne waren, habe ich mir trotzdem einen Sicherheitsgurt eingebaut. Ich habe mir einfach eine temporäre Tabelle angelegt. Das Ganze ist recht simpel. CREATE TEMPORARY TABLE test (SELECT * from nutzer)
Bei diesem Beispiel wird also die temporäre Tabelle test in der Datenbank erstellt. Und zwar mit allem, was in der Tabelle nutzer vorhanden ist. Auf diese temporäre Tabelle habe ich dann mein Script losgelassen, das diverse Änderungen durchgeführt hat. Temporäre Tabellen unter MySQL erstellen. Nachdem das einwandfrei geklappt hat, habe ich es dann auf die richtige Tabelle losgelassen. Einen DROP kann man sich übrigens schenken, da die temporären Tabellen nur so lange halten, wie man mit der Datenbank verbunden ist. Na ja im Grunde nichts Besonderes, aber vielleicht kann es ja jemand mal gebrauchen.