/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
[MS-SQL 2000] Slette fra flere tabeller
Fra : Stefan Kristensen


Dato : 17-01-05 16:24

Hej NG.

Jeg skal slette række fra ti tabeller der ikke er relaterede (det burde de
være, men det er de altså ikke).
Så vidt jeg kan se i BOL skal man lave en DELETE FROM tabelx for hver tabel,
men er der en anden måde at slette rækker fra flere tabeller på en gang?
WHERE klausulen er den samme for alle tabellerne.

Mvh
Stefan

--
Jeg mangler en figur til modelbanen
http://jems.dk/postbud.jpg
Lad mig vide hvis du har set den eller ved hvor den kan købes



 
 
Jens Gyldenkærne Cla~ (17-01-2005)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 17-01-05 16:34

Stefan Kristensen skrev:

> Så vidt jeg kan se i BOL skal man lave en DELETE FROM tabelx for hver tabel,
> men er der en anden måde at slette rækker fra flere tabeller på en gang?
> WHERE klausulen er den samme for alle tabellerne.

Du kan forsøge dig med delete på en UNION-forespørgsel, men jeg er
hverken sikker på at virker eller at det vil være mere effektivt end 10
almindelige sletteforespørgsler.

Hvis det er en tilbagevendende begivenhed, kan du oprette en lagret
procedure der kører de ti forespørgsler for dig (den kan så tage et
idnummer eller lignende som parameter).

--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Stefan Kristensen (18-01-2005)
Kommentar
Fra : Stefan Kristensen


Dato : 18-01-05 08:20

> > Så vidt jeg kan se i BOL skal man lave en DELETE FROM tabelx for hver
tabel,
> > men er der en anden måde at slette rækker fra flere tabeller på en gang?
> > WHERE klausulen er den samme for alle tabellerne.
Det fandt jeg så lige ud af at det er den ikke :-/

> Du kan forsøge dig med delete på en UNION-forespørgsel, men jeg er
> hverken sikker på at virker eller at det vil være mere effektivt end 10
> almindelige sletteforespørgsler.
Med lidt copy & pase er det jo heller ikke det store problem.

> Hvis det er en tilbagevendende begivenhed, kan du oprette en lagret
> procedure der kører de ti forespørgsler for dig (den kan så tage et
> idnummer eller lignende som parameter).
Nu ligger det i en stored procedure, så det var mest nysgerrighed.
Kan man i SQL lave et tekst array med tabelnavne og så køre en løkke der
bruger array'et som argumenter? Nu er vi jo nok ikke ude i noget optimering,
men som sagt er jeg nysgerrig

Mvh
Stefan




Jens Gyldenkærne Cla~ (18-01-2005)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 18-01-05 11:31

Stefan Kristensen skrev:

> Kan man i SQL lave et tekst array med tabelnavne og så køre en løkke der
> bruger array'et som argumenter?

Det skulle nok være muligt. Man skal bare huske at man skal opbygge hele
sql-sætningen som en streng og køre den med fx EXEC @strengvariabel

Man kan ikke bare skrive:

   SELECT foo FROM bar WHERE @strengvariabel


NB: Kan du lokkes til at lave en tom linje mellem citater og din egen
tekst når du svarer på indlæg? Det er svært at skelne de to dele når der
ikke er mellemrum.

--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Stefan Kristensen (18-01-2005)
Kommentar
Fra : Stefan Kristensen


Dato : 18-01-05 17:46

> > Kan man i SQL lave et tekst array med tabelnavne og så køre en løkke der
> > bruger array'et som argumenter?
>
> Det skulle nok være muligt. Man skal bare huske at man skal opbygge hele
> sql-sætningen som en streng og køre den med fx EXEC @strengvariabel
>

Okay. Absolut ikke nemmere eller smartere, så
Men tak for dine svar.

> NB: Kan du lokkes til at lave en tom linje mellem citater og din egen
> tekst når du svarer på indlæg? Det er svært at skelne de to dele når der
> ikke er mellemrum.

Jooh...

Mvh
Stefan



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408924
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste