Avatar billede tuctoh Nybegynder
26. januar 2004 - 13:57 Der er 5 kommentarer og
1 løsning

Opdater tilfældig kolonne

Hej,

Jeg har en tabel med attributterne:
a1, a2, a3... a20
jeg vil have en SQL-sætning eller stored procedure til at opdatere en TILFÆLDIG af disse atributter. Noget med:

update mintabel set a'+random+' = a'+random+' +1 where gnu='rød'

Kan i hjælpe med det?
Avatar billede trer Nybegynder
26. januar 2004 - 14:04 #1
hmmm...  ikke det store problem. Du skal lave det med dynamisk sql i en stored procedure

a la

create procedure randomcol(@val varchar(88))
as
begin
  declare @a int, @sql varchar(888)
  set @a = floor(rand()*30)
  set @sql = 'update mintabel set a'+cast(@a as varchar)+'='''+@val+''''
  exec(@sql)
end

der er sikkert problemer med antallet af ' i strengene - det må du selv checke...

I øvrigt et lidt underligt tabeldesign / behov....
Avatar billede arne_v Ekspert
26. januar 2004 - 14:05 #2
Det tror jeg ikke at du kan i SQL.

Det passer ikke rigtigt ind i relations database paradigmet.

Men det vil være pærenemt at lave i applikationen:
Avatar billede trer Nybegynder
26. januar 2004 - 14:06 #3
arne_v> Jeg kan kun give dig ret mht at det ikke passer ind i tankegangen om en relationsdatabase...
Avatar billede tuctoh Nybegynder
26. januar 2004 - 14:08 #4
Det er ikke en relationsdatabase :p Og ja, et underligt behov... men bare det virker ;)

Jeg prøver dit forslag lige om lidt trer, og skriver tilbage... ser ud til at kunne virke.
Avatar billede tuctoh Nybegynder
26. januar 2004 - 14:21 #5
yep, det virker... tak trer!
Avatar billede trer Nybegynder
26. januar 2004 - 14:45 #6
Så lidt, tak for points :-)

I øvrigt, hvis termerne skal sættes helt på plads: MsSQL er en relationsdatabase - det du er en ikke-normaliseret database :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester