Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> losowa podmiana danych w polu tabeli
zietek
post
Post #1





Grupa: Zarejestrowani
Postów: 34
Pomógł: 1
Dołączył: 25.12.2007

Ostrzeżenie: (0%)
-----


Witam,

Kod
DECLARE @nazwiska table (nazwisko nvarchar(128))

INSERT INTO @nazwiska (nazwisko) VALUES ('Romik')
INSERT INTO @nazwiska (nazwisko) VALUES ('Gardzielewski')
INSERT INTO @nazwiska (nazwisko) VALUES ('Wysocki')
INSERT INTO @nazwiska (nazwisko) VALUES ('Migalski')
INSERT INTO @nazwiska (nazwisko) VALUES ('Sztucki')
INSERT INTO @nazwiska (nazwisko) VALUES ('Styburski')
INSERT INTO @nazwiska (nazwisko) VALUES ('Piotrowiak')
INSERT INTO @nazwiska (nazwisko) VALUES ('Suchogórski')
INSERT INTO @nazwiska (nazwisko) VALUES ('Mrozowski')
INSERT INTO @nazwiska (nazwisko) VALUES ('Szuba')
INSERT INTO @nazwiska (nazwisko) VALUES ('Stawska')
INSERT INTO @nazwiska (nazwisko) VALUES ('Ciechański')
INSERT INTO @nazwiska (nazwisko) VALUES ('Grzegrzółka')

UPDATE dbo.osoby SET nazwisko = (SELECT TOP 1 nazwisko FROM @nazwiska ORDER BY NEWID())




Mam tabele dbo.osoby zawierajaca pole nazwisko. Chcialby losowo zamienic wszystkim zazwiska na inne. Tworze zatem tymczasowa tabele wypelniona roznymi przypadkowymi nazwiskami.

Problem polega na tym: chce zrobic UPDATE taki, ze wszystkim osobom z tabeli dbo.osoby chce zalosowac nowe nazwisko z tabeli tymczasowej. Nie wiem jednak jak losowac rekord z tabeli (tzn nie wiem czy NEWID() jest dobrym rozwiazaniem) oraz nie wiem jak zrobic, zeby podzapytanie SELECT wykonywalo sie osobno dla kazdego UPDATEowanego rekordu. Na razie raz losuje i wrzuca wszystkim to samo nazwisko...

PS nazwiska moga sie powtarzac
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
wampirek
post
Post #2





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 2.09.2008

Ostrzeżenie: (0%)
-----


Musisz to umieścić w pętli i zmieniać @numer_id
  1. UPDATE dbo.osoby
  2. SET nazwisko = (SELECT top 1 nazwisko
  3. FROM @nazwiska WHERE nazwisko <>(SELECT nazwisko
  4. FROM dbo.osoby WHERE id = @numer_id))
  5. WHERE id = @numer_id
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 07:51