Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

SQL Temporäre Tabellen abfragen

Frage Entwicklung Datenbanken

Mitglied: Fred666

Fred666 (Level 1) - Jetzt verbinden

17.07.2011 um 19:02 Uhr, 8605 Aufrufe, 5 Kommentare

Verwendet wird SQL 2005

Hey zusammen,

ich habe eine Frage zu temporären Tabellen!!

Und zwar habe ich eine Stored Procedure welche mir eine Temp. Tabelle erstellt und diese füllt.

Wenn ich nun in einer Query (der gleichen Datenbank) die Stored Procedure ausführe und danach auf Daten der TempTabelle zugreifen möchte bekomme ich den Fehler:

<Invalid object name '#TempTestTabelle'>

Mein Aufruf sieht folgendermaßen aus:

01.
 USE NORTHWIND 
02.
EXEC dbo.USP_TempTabelle        --Hier wird #TempTestTabelle erzeugt 
03.
--nun auf diese Daten zugreifen 
04.
SELECT Spalte1, Spalte3 FROM #TempTestTabelle
Was muss ich tun, damit ich mit der Temp. Tabelle in anderen Querys arbeiten kann?!?

Danke und Grüße
Fred
Mitglied: Biber
17.07.2011 um 19:48 Uhr
Moin Fred666,

  • eine in einer Stored Procedure angelegte lokale temporäre Tabelle (Präfix "#") ist nur innerhalb der StP inclusive evtl aufgerufener Unter-stored procedures sichtbar.
  • eine irgendwo, z.B. in einer Stored Procedure angelegte globale temporäre Tabelle (Präfix "##") ist innerhalb der gesamten Session sichtbar.

-> also entweder globale TempTables anlegen
-> oder alles (auch deine Queries) in einer erweiterten StP abfackeln.

Grüße
Biber
Bitte warten ..
Mitglied: Fred666
17.07.2011 um 21:38 Uhr
Hi Biber,

okey danke für die Infos! .... das mit dem global hab ich versucht aber nicht ganz geklappt. werde wohl oder übel unterUSP aufrufen müssen!!


Greez und danke
Fred!!
Bitte warten ..
Mitglied: Biber
17.07.2011 um 22:39 Uhr
Moin Fred666,

hab ich versucht aber nicht ganz geklappt..
-> Gilt hier nicht im Forum.

Eventuell hilft es schon, wenn du die Tabellen beim SELECT (also nach dem CREATE und Befüllen durch die StP) mit voll qualifiziertem Namen ansprichst.

Also
SELECT whatever1, whatever2 FROM tempdb.dbo.##TempTestTabelle 
 
Und es muss natürlich in derselben Session sein.

Grüße
Biber
Bitte warten ..
Mitglied: Fred666
18.07.2011 um 08:34 Uhr
Hi...

okey! ... nehme ich zur Kenntniss^^ .... Also ich habe es so probiert wie du meintest:
Habe in einer Query eine ##TempTabelle angelegt und in einer anderen darauf zugegriffen. Hat geklappt.
ABER: wenn ich in einer Query eine ##TempTabelle anlege, diese Querry schließe und in einer neuen Query darauf zugreifen möchte geht das nicht mehr!!

Das war mit dem"versucht aber nicht geklappt" gemeint!!

EDIT: Also wenn ich das über eine USP mache, dann ist die ##TempTable bearbeitbar aber nur solange wie das Fenster welches die USP aufrief offen ist!! Wenn ich dieses Fenster schließe, welches die USP aufruft dann ist auch die Tabelle weg!

weitere Frage: wie sicher bzw. erstrebenswert ist es globale Temp Tabellen zu verwenden?? Gibt es da irgendwelche risiken oder ähnliches das man beachten sollte?!?

Grüße Fred
Bitte warten ..
Mitglied: MadMax
18.07.2011 um 13:01 Uhr
Moin,

temporäre Tabellen werden gelöscht, sobald die SP, durch die sie angelegt wurde, beendet wird. Ob lokal oder global ist egal, wenn USP_TempTabelle beendet wird, ist die Tabelle weg. Was funktioniert ist, wenn die temporäre Tabelle erst erstellt wird, dann in der Unterprozedur USP_TempTabelle die Tabelle befüllt wird und dann der Inhalt weiterverarbeitet wird. Nicht die schönste Art, aber anders gehts nicht (wenn doch, dann wäre ich auch für eine sinnvolle Alternative dankbar ).

Der Nachteil von globalen Tabellen ist einfach der: Wenn mehrere Benutzer ein Programm bedienen und erst Benutzer A die globale Tabelle anlegt und anschließend Benutzer B dieselbe Prozedur aufruft und auch die Tabelle anlegen will, dann bekommt der einen Fehler. Die temporäre Tabelle von Benutzer A sollte er auch nicht verwenden, weil er ja nicht weiß, wann der die Tabelle wieder löscht.

Bis jetzt habe ich noch keine sinnvolle Verwendung in einem Programm für die globale Tabelle gefunden. Einzig, wenn ich im Query Analyzer was teste und von einer anderen Session aus mal einen Wert abfragen will, dann brauche ich die globalen Tabellen, aber das kommt so gut wie nie vor

Gruß, Mad Max
Bitte warten ..
Ähnliche Inhalte
Datenbanken
SQL Abfrage aus mehreren Tabellen
gelöst Frage von el-torontoDatenbanken2 Kommentare

Hallo, auf dem Bild die vereinfachte Darstellung. Problematik: - Tabelle 1 enthält hunderte Kunden und wird mit Werten und ...

Datenbanken
SQL Abfrage: Ergebniss aus einer Tabelle mit Bedigung aus einer 2. Tabelle
gelöst Frage von holiboliDatenbanken4 Kommentare

Ausgangslage: Tabellen Auf.Texte Auf_Dokumente Inhalt (den ich brauche): Auf_Texte: AUF_Texte.Z_Dokumenttyp AUF_Texte.SprachePRO AUF_Texte.Z_Unser_Zeichen AUF_Texte.TextfeldRTF (Nur dieses sollte am schluss angezeigt ...

Datenbanken
Schleifen in SQL-Abfrage bei 2 Tabellen
gelöst Frage von AximandDatenbanken2 Kommentare

Hallo, ich hab mal wieder als totaler SQL-Anfänger ein Problemchen bei dem ich mir die Haare raufe. Ich habe ...

Datenbanken
SQL Abfrage ( Tabelle im Vorfeld Filtern)
gelöst Frage von karlchristianDatenbanken1 Kommentar

Danke, habe das Problem selber behoben, daher habe ich die Anfrage geschlossen

Neue Wissensbeiträge
Linux

Limux-Ende in München: Wie ein Linux Projekt unter Ausschluss der Öffentlichkeit zerstört wurde

Information von Frank vor 7 StundenLinux12 Kommentare

Mein persönlicher Kommentar zum Thema "Limux-Ende". Die SPD-Politikerin Anne Hübner hat die Richtung von München ganz klar definiert: "Wir ...

Batch & Shell

Open Object Rexx: Eine mittlerweile fast vergessene Skriptsprache aus dem Mainframebereich

Information von Penny.Cilin vor 1 TagBatch & Shell9 Kommentare

Ich kann mich noch sehr gut an diese Skriptsprache erinnern und nutze diese auch heute ab und an noch. ...

Humor (lol)

"gimme gimme gimme": Automatischer Test stolpert über Easter Egg im man-Tool

Information von Penny.Cilin vor 1 TagHumor (lol)6 Kommentare

Interessant, was man so alles als Easter Egg implementiert. Ist schon wieder Ostern? "gimme gimme gimme": Automatischer Test stolpert ...

MikroTik RouterOS

Mikrotik - Lets Encrypt Zertifikate mit MetaROUTER Instanz auf dem Router erzeugen

Anleitung von colinardo vor 2 TagenMikroTik RouterOS8 Kommentare

Einleitung Folgende Anleitung ist aus der Lage heraus entstanden das ein Kunde auf seinem Mikrotik sein Hotspot Captive Portal ...

Heiß diskutierte Inhalte
Router & Routing
Zwei Netzwerke erstellen
Frage von bunteblumeRouter & Routing14 Kommentare

Hallo Zusammen, Ich möchte gerne ein backup von einem bestimmten Folder welcher auf dem Server regelmässig synchronisiert wird auf ...

Windows 10
Alle Programme mit bestimmtem Namen automatisch (per GPO) deinstallieren
gelöst Frage von lordofremixesWindows 1012 Kommentare

Hallo zusammen, gibt es eine Möglichkeit, alle Programme beginnend mit z.B. "Dell" im Namen per Script und somit per ...

Off Topic
Fachkräftemangel in Deutschland? - Talentschmiede schreibt alle 2 Tage die gleichen Stellen aus
Frage von Penny.CilinOff Topic12 Kommentare

Hallo, haben wir in Deutschland Fachkräftemangel? Die Talentschmiede schreibt gefühlt alle zwei Tage dieselben Stellen aus. Und das schon ...

Linux
Limux-Ende in München: Wie ein Linux Projekt unter Ausschluss der Öffentlichkeit zerstört wurde
Information von FrankLinux12 Kommentare

Mein persönlicher Kommentar zum Thema "Limux-Ende". Die SPD-Politikerin Anne Hübner hat die Richtung von München ganz klar definiert: "Wir ...