2009-12-03 5 views

Antwort

12

Sie können Unterabfragen

SELECT a,b,c INTO NewTable 
FROM (SELECT a,b,c 
FROM TheTable 
WHERE a Is Null) 
+2

Warum eine Unterabfrage verwenden? Warum fügen Sie INTO nicht in die innere Abfrage ein? – onedaywhen

+0

Beachten Sie, dass die resultierende 'Tabelle' keinen Schlüssel enthält und daher keine Tabelle ist. – onedaywhen

9

Wie so:

SELECT * 
INTO  NewTable 
FROM  OldTable 
+0

Nicht sicher Access wird tatsächlich * ersetzen * 'NewTable' in dieser Situation, es kann tatsächlich Sachen an die Tabelle anhängen stattdessen, die dann vollständig die Anfrage des Benutzers entsprechen würde, wie ich es verstehe. – Romain

+0

@Romain Muller: Warum feuern Sie Access nicht an und finden Sie die Antwort auf Ihre Frage, anstatt laut darüber zu murmeln? –

+2

Wenn Sie diese SQL in Access QBE ausführen, werden Sie gefragt, ob Sie die vorhandene Tabelle ersetzen möchten. Wenn Sie es mit DoCmd.RunSQL mit SetWarnings ON ausführen, werden Sie außerdem dazu aufgefordert. Wenn Sie versuchen, es in DAO auszuführen, wird es fehlschlagen, da die Tabelle bereits vorhanden ist. In keinem Fall werden die Datensätze an eine vorhandene Tabelle angehängt. –

0
Select * 
Into newtable 
From somequery 
1

Wenn Sie es über die Benutzeroberfläche tun möchten, können Sie auch:

A) erstellen und die Auswahlabfrage testen. Speichere es.

B) Erstellen Sie eine Make-Tabellenabfrage. Wenn Sie gefragt werden, welche Tabellen angezeigt werden sollen, wählen Sie die Abfrage-Registerkarte und Ihre gespeicherte Abfrage aus.

C) Sagen Sie ihm den Namen der Tabelle, die Sie erstellen möchten. Zum

D) Kaffee machen (je nach Geschmack und Größe der Tabelle)

3

Erstellen Sie zunächst eine Tabelle mit den erforderlichen Schlüssel, Einschränkungen, Domain-Überprüfung, Referenzen usw. Verwenden Sie dann ein INSERT INTO..SELECT Konstrukt, um es zu füllen.

Lassen Sie sich nicht von SELECT..INTO..FROM Konstrukte verführen. Die resultierende Tabelle wird keine Schlüssel haben, daher wird sie überhaupt keine Tabelle sein. Es ist besser, mit einer geeigneten Tabelle zu beginnen und dann die Daten z.B. Es wird einfacher sein, schlechte Daten zu erfassen.

Ein Beispiel dafür, wie die Dinge mit einer SELECT..INTO Klausel schief gehen: es in einer Spalte führen kann, die den NULL-Wert enthält und während nach der Veranstaltung können Sie die Spalte ändern, um den Motor nicht NULL die NULLs nicht ersetzen, Daher erhalten Sie eine NOT NULL-Spalte mit NULL s!

Berücksichtigen Sie auch die Erstellung einer "angesehenen" Tabelle, z. Verwenden von CREATE VIEW SQL DDL anstelle einer Basistabelle.

Verwandte Themen