![]() |
Datenbank: MSSQL • Version: 2000 • Zugriff über: SDAC/Corelabs
Generieren von Beispieladressen
Hi Ihr,
ich steh mal wieder aufm Schlauch.... Ich habe eine AdressTabelle, in der vorname, nachname, Strasse u.s.w. stehen. Um Testdaten zu generieren, will ich jetzt bei jeder Adresse z.b. den vornamen aus einer anderen Tabelle in zufälliger Reihenfolge nehmen. mein Versuch: UPDATE tbl_adressen SET vorname=(SELECT top 1 vorname FROM tbl_vornamen ORER BY newid()) klappt nicht. er sucht zwar einen vornamen per zufall raus, aber weißt den gleichen jeder adresse zu. hat einer evtl. ne idee? |
Re: Generieren von Beispieladressen
Hi.
Zitat:
Mit der Subquery stimmt was nicht... Marabu kennt sich mit sowas besser aus als ich... (übrigens: Die DP hat nen SQL-Code-Formatter. Benutze doch das nächste Mal die [ sql ]-Tags...) |
Re: Generieren von Beispieladressen
Deine SubQuery wird einmal ausgeführt und der dann ermittelte Vornamen wird dann in alle deine Adressen eingetragen - vielleicht nicht so gewollt, aber so hast du es beauftragt.
|
Re: Generieren von Beispieladressen
Zitat:
|
Re: Generieren von Beispieladressen
Zitat:
Aber warum so aufwändig? Reicht nicht auch etwas wie (sinngemäß)
Code:
'Vorname' + STRING(RecNo)
|
Re: Generieren von Beispieladressen
Zitat:
hmm... dann schau ich mir mal an, wie ich das in eine sp reinkriege..... hast du evtl. nen denkansatz? |
Re: Generieren von Beispieladressen
Hi,
Du musst im Prinzip alle Datensätze nacheinander durchgehen und dann Deine Abfrage laufen lassen. Vielleicht ist es für DIch einfacher ein Programm zu schreiben, das das für Dich erledigt, anch dem Motto: * Select ID From Adresse; * Alle ID's durchgehen * Einen Zufallswert generieren, der auf einen Vornamen / Namen / Straße / Ort verweist * Die Adresse mit den durch die Zugallszaheln ermittelten Werten zusammensetzen * Per Update in die Datenbank schreiben. So kannst Du dann auch alle anderen Tabellen bearbeiten. Alternative wäre ne StoredProcedure, die in der Ausführungszeit sicherlich etwas schneller wäre, da kenne ich mich im MS SQL-Server aber nicht gut genug aus um Dir zu helfen... Lemmy |
Re: Generieren von Beispieladressen
hi lemmy,
das mit dem extra-programm dachte ich mir auch schon. wäre die einfachste lösung. Aber wenn das mit ner SP geht, dann sollte ich lieber versuchen es damit zu machen. mal schauen, ob ich vielleicht nen beispiel für ne SP finde, die zeilenweise die tabelle ändert. bisher habe ich noch nichts gefunden :-( aber der tag ist ja noch lang ;-) |
Re: Generieren von Beispieladressen
haha,
habs geschafft. Mit ner Sp und mit nem cursor klappt das. vielen dank |
Re: Generieren von Beispieladressen
Achso:
sollte es jemanden interressieren, oder er steht vor dem gleichen problem, hier meine, jetzt eingesetzte, Lösung:
SQL-Code:
Sollte jemand eine bessere und schnellere Idee haben, immer her damit ;-)
CREATE PROCEDURE ChangeAdresses AS
declare @adc_New_vorname varchar(250) declare @adc_id int declare adccursor cursor for select id from adc for read only open adccursor while(0=0) begin fetch next from adccursor into @adc_id if (@@fetch_status<>0) break set @adc_new_vorname = (select top 1 vorname from vornamen order by newid() ) update adc set vorname=@adc_new_vorname where id=@adc_id end close adccursor deallocate adccursor |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:54 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz