Ich muss meinen Mailserver testen. Wie kann ich eine Select-Anweisung erstellen? das wählt sage ID = 5469 tausend mal.
Wenn ich Ihre Bedeutung verstehe, besteht eine sehr einfache Möglichkeit darin, eine abgeleitete Abfrage in einer Tabelle mit mehr als 1000 Zeilen zu verknüpfen und eine Top 1000 darauf zu setzen. Dies würde Ihre Ergebnisse 1000-mal duplizieren.
EDIT: Als Beispiel (Dies ist MSSQL, ich weiß nicht, ob Access viel anders ist)
%Vor%Sie können die UNION ALL-Anweisung verwenden.
Versuchen Sie etwas wie:
%Vor%Sie müssten die SELECT-Anweisung einige Male wiederholen, aber Sie könnten ein wenig VB-Code in Access schreiben, um eine dynamische SQL-Anweisung zu erstellen und dann auszuführen. Nicht schön, aber es sollte funktionieren.
Hier können Sie einen rekursiven Ausdruck für eine allgemeine Tabelle verwenden, um einige leere Zeilen zu generieren und sie anschließend wieder in die gewünschte Zeile einzufügen:
%Vor% Ersetzen Sie @myData
für Ihre reale Tabelle und ändern Sie das endgültige Prädikat entsprechend.
einfacher Weg ...
Dies existiert nur eine Zeile in der DB
%Vor%Versuchen Sie, eine andere Tabelle, in der kein Constraint-Schlüssel vorhanden ist, mit der Haupttabelle in Beziehung zu setzen
Ursprüngliche Abfrage
%Vor%Die funktionale Abfrage ... fügt eine nicht verwandte Tabelle namens 'dbo.TB_Labels'
hinzu %Vor%create Tabelle # tmp1 (ID int, Feld vdchar (max)) Einfügen in # tmp1 (id, fld) Werte (1, 'Hallo!'), (2, 'Welt'), (3, 'schöner Tag!')
Wählen Sie * aus # tmp1 Gehe
Wählen Sie * aus # tmp1 mit ID = 3 Geh 1000
drop table # tmp1
In Postgres gibt es eine nette Funktion namens generate_series. So ist es in postgreSQL so einfach wie:
%Vor%Auf diese Weise wird die Abfrage 1000 mal ausgeführt.
Beispiel für postgreSQL:
%Vor%Wie Sie im untenstehenden Ergebnis sehen können, werden die Daten von uid 1000 Mal gelesen, wie durch die Erzeugung eines neuen Uuids bei jeder neuen Zeile bestätigt.
%Vor%Natürlich haben andere DBs nicht unbedingt die gleiche Funktion, aber es könnte gemacht werden:
Siehe hier und