hmm.. Vielen Dank Joachim,

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

Antwort per Email an