Frage

Ich habe geschaut, in SQL vor kurzem und ein wenig zu erkunden. in Bezug auf Temp Tabellen Ich habe 3 verschiedene temporäre Tabellentypen entdeckt:

1) CREATE TABLE #TempTable

2) DECLARE TABLE @TempTable

3) SELECT * FROM (SELECT * FROM Customers) AS TempTable

Jetzt verstehe ich den Umfang hinter der #TempTable und die @TempTable Typen, aber was ist die abgeleitete Tabelle wie in Beispiel 3? Woher nimmt diese abgeleitete Tabelle gespeichert? und wenn es in 1 Transaktion deklariert, kann eine zweite Transaktion Zugriff darauf oder ist die Scoping-abgeleiteter Tabellen das gleiche wie in Beispiel 1 und 2?

War es hilfreich?

Lösung

Dies ist abhängig von der tatsächlichen RDBMS Sie verwenden - nehme ich an, Sybase oder SQL Server (aber vielleicht auch für alle wahr sein)

SELECT * FROM (SELECT * FROM Customers) AS TempTable

TempTable ist nur für die aktuelle SQL-Anweisung also nur die Auswahl.

SELECT * FROM Customers into tempdb..TempTable

würde eine neue Tabelle in der tempdb erstellen whichg explizit gelöscht werden müßte

Andere Tipps

1) CREATE TABLE #TempTable --local temporäre Tabelle

Lokale temporäre Tabellen sind nur sichtbar, in der aktuellen Sitzung und können zwischen verschachtelten gespeicherte Prozeduraufrufen geteilt werden:

scroll top