Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Verständnisfrage

Begonnen von Xoar, Mai 26, 2021, 15:32:04

⏪ vorheriges - nächstes ⏩

Xoar

Moin alle zusammen,

ich bin gerade dabei mein erstes Accessbackend auf einen MS Sql Server zu migirieren. Allerdings hab ich noch ein paar Verständnisfragen, die ich auf anhieb nicht im Netz finden konnte. Ich benutze das Microsoft SQL Management Studio 18.

1. In Access gibt es nur eine Indexart zum Auswählen, welcher man z.B. die Eigenschaft ,,eindeutig" zuweisen kann.

Im SQL Server kann man einen Indiz auswählen, dem man die Eigenschaft ,,eindeutig" zuweisen kann, aber man kann auch einen Index auswählen der schon ,,eindeutiger Index" heißt.

Gibt da irgendwie Unterschiede drin??

2. Kann man einer Sicht (ist doch sowas wie eine nicht änderbare Abfrage,oder?) auch Indexe zuweisen...sind die dann zusätzlich zu denen der Tabelle, oder nutzt die Sicht garnicht die Tabellenindexe?!

3. Sind Index und Indize das gleiche, nur anders benannt?

4. Habe ich eine Tabelle händisch angelegt, 1 zu 1 wie in Access mit den passenden Datentypen. Wähle ich in Access einige DS mit Strg+C aus und füge sie mit Strg+V in die Tabelle auf dem SQL Server ein, gibt es bei einigen DS den Fehler, dass die Feldlänge zu kurz wäre und der DS wird übersprungen.
Verlinke ich die Tabelle aber über Access, kann ich mit der gleichen Mechanik alle Datensätze in die verlinkte Tabelle kopieren, ohne Fehlermeldung. Leider wird ja nicht angezeigt welches Feld angeblich zu kurz sein soll.
Datentypen sind für Textfelder > nvachar(50) z.B., 50 Zeichen lang ist aber kein Inhalt in einem Access Textfeld.

Danke schonmal für eure Hilfe, es kommen bestimmt noch mehr Fragen auf 🙈

PhilS

Da sind richtig gute Fragen dabei!



Zitat von: Xoar am Mai 26, 2021, 15:32:04Im SQL Server kann man einen Indiz auswählen, dem man die Eigenschaft ,,eindeutig" zuweisen kann, aber man kann auch einen Index auswählen der schon ,,eindeutiger Index" heißt.

Gibt da irgendwie Unterschiede drin??
Ja.
Ist das wirklich als "Eindeutiger Index" in's Deutsche übersetzt? Das wäre noch verwirrender als es in Englisch schon ist.
Original: "Unique Key" vs. "Index".

Der Unique Key wird automatisch auch mit einem Index unterlegt und sorgt für eindeutige Werte in der Tabelle.
Ein Index mit dem Attribut eindeutig, sorgt für eindeutige Werte im Index. Je nach den weiteren Eigenschaften sind aber nicht unbedingt alle Werte in der Tabelle auch im Index drin, d.h. in der Tabelle können u.U. Werte mehrfach vorkommen.
Ein Index hat im allgemeinen auch noch viele andere Eigenschaften, die ein Unique Key in der Form nicht hat.

Zitat von: Xoar am Mai 26, 2021, 15:32:042. Kann man einer Sicht (ist doch sowas wie eine nicht änderbare Abfrage,oder?) auch Indexe zuweisen...sind die dann zusätzlich zu denen der Tabelle, oder nutzt die Sicht garnicht die Tabellenindexe?!
Ja, eine Sicht entspricht weitestgehend einer Auswahlabfrage in Access.

Vorsicht mit Indexen auf Views (Sichten)! Diese machen die View zu einer "Materialized View", die selbst eine Kopie des Datenbestandes der Tabellen enthält. Das hat sehr viele Implikationen, nicht nur positive.
Das im Detail zu erläutern würden den Rahmen hier sprengen. Daher folgende Grundregel: Solange du nicht die Zeit hattest zu "Indexed Views"/"Materialized View" genau nachzurecherchieren, erstelle niemals einen Index auf einer View.
Die Tabellen-Indizes werden natürlich verwendet wenn du eine normale (nicht indizierte) View abfragst. - Da fängt es schon an mit den Implikationen. ;-)

Zitat von: Xoar am Mai 26, 2021, 15:32:043. Sind Index und Indize das gleiche, nur anders benannt?
Ich denke schon. Das ist vermutlich eine weitere Ungenauigkeit, die durch die deutsche Übersetzung entstanden ist. Wenn du unsicher bist, musst du mal den genauen Kontext nennen, wo das vorkommt.


Zitat von: Xoar am Mai 26, 2021, 15:32:04Wähle ich in Access einige DS mit Strg+C aus und füge sie mit Strg+V in die Tabelle auf dem SQL Server ein, gibt es bei einigen DS den Fehler, dass die Feldlänge zu kurz wäre und der DS wird übersprungen.
?
Es kann sein, dass die Spaltenüberschriften mit kopiert wurden und als Datensätze eingefügt werden sollten und dann den Fehler ausgelöst haben. - Ansonsten habe ich dazu erstmal keine Idee.


Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

Xoar

Hi,
ich gucke morgen auf der Arbeit nochmal genau nach den Bezeichnungen nach.

Ok bei Sichten/Views lass ich es dann mit den Indexen.

Ich guck morgen mal ob ich ein Beispiel rekonstruieren kann.

Grüße 👋🏻


Xoar

#3
Moin, ich habe gerade mal nachgeschaut.

Zitat von: undefinedIst das wirklich als "Eindeutiger Index" in's Deutsche übersetzt? Das wäre noch verwirrender als es in Englisch schon ist.
Original: "Unique Key" vs. "Index".

Also ich das Feld als Primärschlüssel definieren, dann ist eindeutig unabwählbar aktiviert. Muss ja
Sie dürfen in diesem Board keine Dateianhänge sehen.

Index mit der Option "eindeutig"
Sie dürfen in diesem Board keine Dateianhänge sehen.

und als Indexauswahl die Möglichkeit "Eindeutiger Schlüssel"
Sie dürfen in diesem Board keine Dateianhänge sehen.

Zitat von: undefinedDer Unique Key wird automatisch auch mit einem Index unterlegt und sorgt für eindeutige Werte in der Tabelle.
Also wenn ich den Index "Eindeutiger Schlüssel" wähle, kann der Wert in allen Feldern der Tabelle nur einmal vorkommen?! Wo braucht man denn sowas?


Zitat von: undefinedEs kann sein, dass die Spaltenüberschriften mit kopiert wurden und als Datensätze eingefügt werden sollten und dann den Fehler ausgelöst haben. - Ansonsten habe ich dazu erstmal keine Idee.
Da der fehlerhafte DS auch inmitten von anderen auftaucht, wird es vermutlich nicht an der Überschrift liegen. Kam leider noch nicht dazu es zu rekonstruieren.

Grüße

PhilS

Zitat von: Xoar am Mai 27, 2021, 15:07:30
Zitat von: undefinedDer Unique Key wird automatisch auch mit einem Index unterlegt und sorgt für eindeutige Werte in der Tabelle.
Also wenn ich den Index "Eindeutiger Schlüssel" wähle, kann der Wert in allen Feldern der Tabelle nur einmal vorkommen?! Wo braucht man denn sowas?
Nicht in allen Feldern, sondern nur in den Feldern, die unter "Spalten" angegeben wurden und dann auch immer bezogen auf die Kombination der Werte in allen betroffenen Spalten, wie von einem eindeutigen Index in Access bekannt.
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor