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 = ASP-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

Antwort per Email an