PDA

Vollständige Version anzeigen : Zeilennummern in Views


<Urs Langmeie>
26.11.2002, 12:40
Hallo mal ne Frage.

Warum baut Microsoft eigentlich nicht irgendwie ne Funktion in SQL ein, die die Zeilennummer in der aktuellen View zurückgibt?

Ich bräuchte eine View, in der in jedem herausgegebenen Datensatz noch die Datensatznummer steht.

Das hätte mir die Arbeit schon viele male wesentlich erleichtert. Ist denn das so schwierig, zum das in SQL einzubauen?

danke,

urs

Joachim Hofmann
26.11.2002, 15:09
Hallo Urs Langmeie,

Das läßt sich ziemlich einfach lösen, wenn man eine Spalte in jede Tabelle zufügt, in der nur ein automatisch sich hochzählender Key steht.
Bsp.
Tabelle heißt [Vertraege]
Es gibt eine Spalte [Vertraege_Key] mit Eigenschaften &lt;Identität&gt; sowie &lt;ID-Startwert&gt; = 1 und &lt;ID-Schrittwert&gt; = 1, dieser soll als Primärschlüssel definiert werden.

Weiter im Beispiel: Jedem Vertrag ist ein oder (historisch) mehrere Preissystem(e) zugeordnet.


[Vertraege] [Preissysteme]
=======================================
... ...
Vertraege_Key &lt;--1:n--&gt; Preissystem_Key
... ...



So baut man fachmännisch eine professionelle Datenbank auf.

Belehrenden Gruß

<Urs>
27.11.2002, 11:57
Hmm also ein sich automatisch erhöhender Wert sollte meiner Meinung nach nicht als Primärschlüssel definiert werden. Mit dem habe ich bis jetzt nur negative Erfahrungen gemacht.

Aber als Lösung in einer View kann Ihr Beitrag auch nicht gelten! Da werden die Zeilen manchmal beliebig umsortiert. Ausserdem sind die Tabellen unserer Datenbank nun mal nicht mit Zeilennummern versehen und das kann ich auch nicht ändern habe keine Berechtigung dazu.

Gruss,

Urs

Joachim Hofmann
27.11.2002, 13:47
Hallo,

Was haben Sie denn für negative Erfahrungen mit Identität-Primärschlüsseln gemacht? Das würde mich mal interessieren.

Mit der View könnten man den Key einfach mit anzeigen. Das ist ja schon ziemlich ähnlich einer Zeilennummer, bzw. der Datensatz ist absolut eindeutig und kurz identifizierbar, auch wenn es nicht immer der tatsächlich absoluten Zeilennummer entspricht (z.B. falls DS zwischenzeitlich gelöscht wurden, gibt es eine "Lücke".)

Ansonsten kann man ja die Ausgabe in eine Datei umleiten (extras->optionen->ergebnisse->"Standardziel für Ergebnisse:Ergebnisse in Datei")(geht mit Query Analyzer ab SQL Server 2000) und die Ergebnisdatei mit einem "vernünftigen" Editor anzeigen, der Zeilennummern ausgeben kann (Proton, Ultraedit, KaiEdit (www.kaiedit.de),.....). Fertig, würde ich sagen.

<Urs Langmeie>
28.11.2002, 14:43
ich will aber Zeilennummern in Views das ist was anderes. Ich musste zum Beispiel für unsere Software einen Export schreiben der wiederum in ein Buchhaltungsprogramm (ABACUS oder so) exportiert werden kann. Dieser erfordert Zeilennummern direkt im File und ich kann das unmöglich über den Umweg auf einen Editor lösen das wäre nicht genügend Kundenfreundlich.

Trotzdem danke für die Tipps.

Steinadler
12.12.2002, 13:24
Zeilennummern in Views werden im Regelfal nicht verwendet. Da ja das Front-End mit einer Abfrage auf die View zugreifen kann, würden die Zeilennummern nicht stimmen. Wenn Du eine Zeilennummer brauchst, kannst du eine temporäre Tabelle mit Autowert erstellen. Falls ich Zeilennumern brauche, generiere ich sie in meinem Front-End Programm, denn nur da weiß ich,, wie es sortiert ist und welche Filter ich benötige.