# Erste Datensatz löschen (MSSQL)



## hadda (21. April 2008)

Hallo zusammen,

Ich möchte den ersten Datensatz von der Tabelle löschen, übrigens ich arbeite mit SQL Server 2005.

weiß jemand wie ich das mache?
Danke im Voraus für Ihre Hilfe.

Liebe grüße
Hadda


----------



## dbwizard (21. April 2008)

hadda hat gesagt.:


> Hallo zusammen,
> 
> Ich möchte den ersten Datensatz von der Tabelle löschen, übrigens ich arbeite mit SQL Server 2005.
> 
> ...




- Definiere "Ersten" Datensatz


----------



## hadda (21. April 2008)

Tabelle enthält Daten, ich möchte die erste Zeile der Tabelle löchen ohne Wher-clause  
zu benutzen,

Danke


----------



## dbwizard (21. April 2008)

hadda hat gesagt.:


> Tabelle enthält Daten, ich möchte die erste Zeile der Tabelle löchen ohne Wher-clause
> zu benutzen,
> 
> Danke



Aber es gibt keinen "ersten" Datensatz...

- Es gibt einen zuerst eingefügten, den erkennst du aber nur, wenn du den Zeitpunkt mitgespeichert hast...
- Es gibt eine "ersten" Datensatz, wenn du ein Select * from bla machst, aber das ist NICHT notwendigerweise immer derselbe, wenn du kein ORDER BY verwendet, die Reihenfolge der Rows OHNE ORder by ist nicht gesichert
- Also : was ist der "erste" datensatz ?


----------



## RaketenPeter (21. April 2008)

dbwizzard hat recht

Aber wenn du eine ID verwendest kannst Du per Min(ID) den ersten Datensatz finden und dementsprechend löschen ?!


----------



## dbwizard (21. April 2008)

RaketenPeter hat gesagt.:


> dbwizzard hat recht
> 
> Aber wenn du eine ID verwendest kannst Du per Min(ID) den ersten Datensatz finden und dementsprechend löschen ?!



- In der Hoffnung, das min(ID) auch der älteste Datnsatz ist , falls er überhaupt den "ältesten" löschen will, aber dass kann uns nur der OP erkären.

@HADDA : Kanst du nicht mal die Struktur der fraglichen Tabelle posten ?


Gruss


----------



## hadda (21. April 2008)

in MSSQL man kann ersten Datensatz (dh erste Zeile) mit select top 1 from table selektieren.
zb table :

Id     wert
-------------
1     200
2     4000

jetzt ich will die erste Zeile (dh mit ID=1) löschen, aber ich darf nicht where-clause benutzen.


----------



## zerix (21. April 2008)

Warum darfst du where nicht benutzen?

Irgendwie muss doch definiert werden, welcher Datensatz gelösch werden soll.

MFG

Sascha


----------



## RaketenPeter (21. April 2008)

Vielleicht geht ja sowas 

für MySQL gibts Limit


DELETE FROM table ORDER BY id LIMIT 1;


----------



## hadda (21. April 2008)

ja mit MySQL geht so wie oben beschrieben.
aber mit MSSQL geht leider nicht.
ja ich will kein Wher klausel benutzen, denn ich muss immer zwei werte vergleichen 
gibt es in MSSQL keine Möglichkeit wie MYSQL?


----------



## zerix (21. April 2008)

> ja ich will kein Wher klausel benutzen, denn ich muss immer zwei werte vergleichen



Bring mal bitte ein Beispiel dafür. So wie ich das nämlich verstehe, ist das möglich.

MFG

Sascha


----------



## RaketenPeter (21. April 2008)

afaik gibts aber bei mssql den top x (für x eine beliebige Zahl) dann wieder order by und das sollte funktionieren


----------



## hadda (21. April 2008)

Ich habe eine Tabelle. wenn ich die erste Satz selektieren will 
Einfach:  select top 1 * from table
Hier habe ich keine Wher-Klause gemacht, um die erste Satz zu selektieren!!

Jetzt will genau so  machen, wie bei selektieren, 

gibt es Tipp oder ähnliches?


----------



## RaketenPeter (21. April 2008)

Ich versteh den Kommentar zwar nicht ^^ aber naja versuchen wir es mal 

delete top 1 from table order by id;


----------



## shutdown (21. April 2008)

> ```
> delete top 1 from table order by id;
> ```



Mein SQL-Orakel sagt mir, dass das höchstwahrscheinlich nicht klappen wird.

Warum kein where

Wie soll das Endergebnis aussehen?
Was musst du vergleichen?
Gib uns Infos, wir geben dir Antworten.


----------



## RaketenPeter (21. April 2008)

Also  wie ich das verstanden habe möchte er lediglich den tupel mit der ersten (der kleinste) id löschen. Aber da keine where Clause benutzen weil er das ganze irgendwie verschachteln will. 

ma ne frage von mir ;D wie kann cih so schoen den sql code reinschreiben D;


----------



## shutdown (21. April 2008)

Indem du code-Tags verwendest

['sql'] code ['/sql'] ohne die '

gibts u.a. auch für 
<code>
<php>
<java>
<quote>


----------



## RaketenPeter (21. April 2008)

ahhh DANKE ;D 



```
ach guck ma einer an wie einfach das ist ;)!
```


----------



## hadda (21. April 2008)

danke für Ihre Mühe , melde mich wieder ich muss was anders machen..


----------

