Na dann alles nochmal �berdenken und weiter probieren. Zum Gl�ck habe ich f�r dei L�sung noch etwas Zeit ;-)
Viele Gr�sse
At 14:38 09.07.2003 +0200, you wrote:
Hallo!
> >Aber sag mal, wof�r Du eine Identity-Spalte in einer > tempor�ren Tabelle > >brauchst. Doch nicht etwa, um eine l�ckenlose ID zu erstellen? > > genau das glaube ich zu brauchen.. > Ist der Gedanke verkehrt? > > Du weisst ja: Die Problemstellung mit den Zufallswerten :-|
F�r die Zufallswerte brauchst Du keine l�ckenlose ID, sondern nur irgendwelche Zahlen; das k�nnen auch Datumswerte sein oder Umwandlungen von Text in Zahlen sein. Im Hinblick auf die �bergabeparameter musst Du experimentieren. Gut ist, wenn diese keine gemeinsamen Teiler haben und ihr Produkt mindestens so gro� ist wie die Anzahl der Datens�tze, also z. B. 59 und 17 bei etwa 1.000 Datens�tzen. Um sicherzugehen, dass genau 20 Datens�tze selektiert werden, musst Du zus�tzlich die ID in die ORDER-BY-Klausel aufnehmen. Wenn die Sortierkriterien nicht eindeutig sind, kann TOP 20 auch mehr als 20 Datens�tze liefern.
Wie bereits gesagt, hat das mit "Zufall" �berhaupt nichts zu tun. Es wird lediglich f�r den Anwender nicht auf den ersten Blick (Modulo-Funktionen) erkennbar, welche Datens�tze selektiert werden.
Identit�tsspalten werden normalerweise nicht ver�ndert, und schon gar nicht, wenn diese als Fremdschl�ssel in anderen Tabellen verwendet werden. Es ist auch m�ssig, 4 Tabellen in eine tempor�re zu kopieren, um dann eine eindeutige ID zu erzeugen mit der dann lediglich Datens�tze "zuf�llig" ausgew�hlt werden. Der Aufwand erscheint mir einfach nicht angemessen.
Meine Empfehlung: Erzeuge eine View, die die 4 Tabellen mit UNION selektiert und dabei einen Zufallswert aus einer UserDefined Function erzeugt, also etwa:
SELECT TOP 20 * FROM (SELECT *, (id % @P) AS Z1, (id % @Q) AS Z2 FROM tabelle1 UNION SELECT *, (id % @P) AS Z1, (id % @Q) AS Z2 FROM tabelle2 UNION ... ) ORDER BY Z1, Z2, id
Und wenn die Tabellen keine ID haben, dann nimm halt irgendetwas anderes. Aber keine tempor�re Tabelle, keine Stored Procedure - na ja: Views sind eigentlich auch Stored Procedures ;-)
Freundliche Gr��e Joachim van de Bruck
~~~~~~~~~~~~~~~~~~~~~~~~~~~sponsored by United Planet~~~~~~~~~~~~~~~~~ Intrexx.BizWalker + ODBC/OLEDB-Daten SP-Formular ATTACK! Download Intrexx CRM-Studio Now! http://www.intrexx.com _______________________________________________ Database.asp mailing list [EMAIL PROTECTED] http://www.glengamoi.com/mailman/listinfo/database.asp
--- Eingehende Mail ist zertifiziert virenfrei. �berpr�ft durch AVG Antivirus System (http://www.grisoft.com/de). Version: 6.0.493 / Virendatenbank: 292 - Erstellungsdatum: 25.06.2003
www.zoologie-online.de
Lars Berner Stormcrow-Software Postfach: 110123 69071 Heidelberg
--- Ausgehende Mail ist zertifiziert virenfrei. �berpr�ft durch AVG Antivirus System (http://www.grisoft.com/de). Version: 6.0.493 / Virendatenbank: 292 - Erstellungsdatum: 25.06.2003
