MS-Office-Forum
Google
   

Zurück   MS-Office-Forum > Microsoft Access & Datenbanken > SQL
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads Der Renner, 11 Entwicklertools für Access, Tipps & Trick und offene Datenbanken zum einzigartigen Preis.
Themen-Optionen Ansicht
Alt 05.01.2017, 09:22   #1
testoww
Neuer Benutzer
Neuer Benutzer
Standard Admin : MSSQL - Insert von einem Wert-Primarykey

Hallo,

ich habe ein MySQL Server und dort eine Tabelle mit 3 Spalten als Primärschlüssel. Diese (als Beispiel) heißen Prim1, Prim2 und Prim3. Die Prim1 ist eine fortlaufende Nummer (müsste also sortiert sein), die in der zwischenzeit ein paar mal gelöscht wurde.
Ich habe also z.B. die einträge für (Prim1, Prim2, Prim3) -> (1, 10, 100) und (3, 11, 100) und will jetzt die "2" mit den Werten z.B. (2, 11, 101) in die Tabelle einfügen.

Wird die Operation klappen? (Mit SET IDENTITY_INSERT ON?)
Wird die Tabelle nach 1,2,3 oder 1,3,2 sortiert sein?

Gruß
testoww ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 05.01.2017, 11:02   #2
hcscherzer
MOF Guru
MOF Guru
Standard

Moin und willkommen im Forum.

Ist das denn jetzt ein MSSQL (wie im Titel) oder ein MySQL (wie im Text)?

Ist denn Prim1 als IDENTITY(1,1) bzw. als AUTO_INCREMENT definiert?

__________________

Freundlichen Gruß
Hans-Christian
-----------------------------------------
Oft erwünscht, selten beachtet: nach Erledigung des Problems den Thread als erledigt zu markieren
-----------------------------------------
Ich möchte nur Mitglied in einem Verein sein, der Leute wie mich nicht als Mitglied aufnimmt (Groucho Marx).
-----------------------------------------
Ab sofort regelmässig: MOF Stammtisch in Bremen. Näheres hier.
hcscherzer ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 05.01.2017, 13:01   #3
sonic8
MOF Profi
MOF Profi
Standard

Zitat: von testoww Beitrag anzeigen

Wird die Tabelle nach 1,2,3 oder 1,3,2 sortiert sein?

Du solltest eine Tabelle am besten als eine unsortierte Menge von Datensätzen betrachten.
Der Primärschlüssel, der de-facto in vielen (nicht allen!) Fällen die Sortierung der Tabelle bestimmt, ist so sortiert, wie du es durch die Spaltenreihenfolge und evtl. durch die optionale Sortierreihenfolge vorgegeben hast. - In deinem Beispiel kannst du davon ausgehen, dass die Sortierung 1,2,3 ist.

Aber, warum ist das relevant? - Wenn du eine bestimmte Sortierung für die Verarbeitung deiner Daten benötigst, dann gibt diese in der entsprechenden Abfrage auch explizit an.

__________________

Better VBA - Videoserie - Episode 7 - Tools zur Codeformatierung
sonic8 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 05.01.2017, 13:29   #4
testoww
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Zitat: von hcscherzer Beitrag anzeigen

Moin und willkommen im Forum.

Ist das denn jetzt ein MSSQL (wie im Titel) oder ein MySQL (wie im Text)?

Ist denn Prim1 als IDENTITY(1,1) bzw. als AUTO_INCREMENT definiert?

Hallo,
ich kenne mich nicht richtig aus - ich arbeite mit Microsoft SQL Server Management Studio. Ich bin mir nicht sicher, ich vermute aber es ist als AUTO_INCREMENT definiert. Die IDs beginnen ab 100000 und sind fortlaufend. Da zwischendurch welche gelöscht wurden, ist meine Aufgabe die fehlenden IDs wiederherzustellen.



Zitat: von sonic8 Beitrag anzeigen

Du solltest eine Tabelle am besten als eine unsortierte Menge von Datensätzen betrachten.
Der Primärschlüssel, der de-facto in vielen (nicht allen!) Fällen die Sortierung der Tabelle bestimmt, ist so sortiert, wie du es durch die Spaltenreihenfolge und evtl. durch die optionale Sortierreihenfolge vorgegeben hast. - In deinem Beispiel kannst du davon ausgehen, dass die Sortierung 1,2,3 ist.

Aber, warum ist das relevant? - Wenn du eine bestimmte Sortierung für die Verarbeitung deiner Daten benötigst, dann gibt diese in der entsprechenden Abfrage auch explizit an.

Hallo,
also wenn 2 jetzt fehlt und 1 und 3 da sind und ich die 2 einfüge, bekomme ich die in der Tabelle 1,2,3 ausgegeben und nicht 1,3,2, richtig ?

Es ist relevant, da die Tabelle Rechnungen enthält und der, der mich beauftragt das zu machen es auch so will (auch wenns sinnlos ist).

---
Gruß
testoww ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 05.01.2017, 13:43   #5
hcscherzer
MOF Guru
MOF Guru
Standard

AUTO_INCREMENT heisst das in MySQL.
In MSSQL ist das ein IDENTITY(1,1).
Jeweils in der Felddefinition.
Kannst Du Dir im Management Studio bei den Tabelleneigenschaften anzeigen lassen.

Prinzipiell würde ich dringend empfehlen, vor allem dann wenn man sich "nicht richtig auskennt" und trotzdem oder gerade deswegen von der Sinnlosigkeit seines Tuns überzeiugt ist, nicht so ohne Weiteres an den produktiven Daten herumzufummeln.

Mach Dir eine Kopie der kompletten DB - Sichern und Wiederherstellen unter einem anderen Namen. Dann kannst Du mit der Kopie herumspielen und wenn die Dinge, die Du ausprobierst, funktionieren, kannst Du die Befehle scripten und auf die produktive DB loslassen.

__________________

Freundlichen Gruß
Hans-Christian
-----------------------------------------
Oft erwünscht, selten beachtet: nach Erledigung des Problems den Thread als erledigt zu markieren
-----------------------------------------
Ich möchte nur Mitglied in einem Verein sein, der Leute wie mich nicht als Mitglied aufnimmt (Groucho Marx).
-----------------------------------------
Ab sofort regelmässig: MOF Stammtisch in Bremen. Näheres hier.

Geändert von hcscherzer (05.01.2017 um 13:46 Uhr).
hcscherzer ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 05.01.2017, 14:34   #6
testoww
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Zitat: von hcscherzer Beitrag anzeigen

AUTO_INCREMENT heisst das in MySQL.
In MSSQL ist das ein IDENTITY(1,1).
Jeweils in der Felddefinition.
Kannst Du Dir im Management Studio bei den Tabelleneigenschaften anzeigen lassen.

Prinzipiell würde ich dringend empfehlen, vor allem dann wenn man sich "nicht richtig auskennt" und trotzdem oder gerade deswegen von der Sinnlosigkeit seines Tuns überzeiugt ist, nicht so ohne Weiteres an den produktiven Daten herumzufummeln.

Mach Dir eine Kopie der kompletten DB - Sichern und Wiederherstellen unter einem anderen Namen. Dann kannst Du mit der Kopie herumspielen und wenn die Dinge, die Du ausprobierst, funktionieren, kannst Du die Befehle scripten und auf die produktive DB loslassen.

ID Inkrement ist in den Tabelleneigenschaften auf 1 gesetzt. Ich kenne mich mit der DB nicht aus, weil die jemand anders entwickelt hat.

Noch eine Frage: Ich habe eine Tabelle mit Kunden. Die ID fangen mit "10000" an. Ich will einen Testkunden anlegen, jedoch ist die ID mit "10000" schon besetzt und ich will, dass die sich von anderen Unterscheidet.
Wie kann ich es am besten machen?
testoww ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 05.01.2017, 16:00   #7
sonic8
MOF Profi
MOF Profi
Standard

Zitat: von testoww Beitrag anzeigen

also wenn 2 jetzt fehlt und 1 und 3 da sind und ich die 2 einfüge, bekomme ich die in der Tabelle 1,2,3 ausgegeben und nicht 1,3,2, richtig ?

Eine Tabelle ist ein Datenspeicher. Daher bekommst du in einer Tabelle niemals etwas ausgegeben.
Für die Ausgabe von Daten machst du eine Abfrage auf eine (oder mehrere) Tabelle. Wenn die Reihenfolge der Daten im Abfrageergebnis wichtig ist, dann solltest du die gewünschte Reihenfolge auch explizit in der Abfrage angeben.

Zitat: von testoww Beitrag anzeigen

Es ist relevant, da die Tabelle Rechnungen enthält und der, der mich beauftragt das zu machen es auch so will (auch wenns sinnlos ist).

Ob es jemand so will ändert nichts an den technischen Gegebenheiten. Wenn dem Benutzer die Reihenfolge der Daten in seiner Darstellung wichtig ist, dann sortiere sie explizit so, wie er sie haben will.

__________________

Better VBA - Videoserie - Episode 7 - Tools zur Codeformatierung
sonic8 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 07.01.2017, 14:46   #8
Eisbergle
Neuer Benutzer
Neuer Benutzer
Standard

Wie die anderen schon beschrieben haben, es ist nur eine Datensammlung. Ich gehe aufgrund deiner Beiträge jedoch davon aus, dass du kompletter Neuling bist und damit gar nichts anfangen kannst.
wenn du im SQL-Manager bist und mit rechtem Mouse-Click Deine Tabelle in der Datenbank anzeigen lassen willst, so wählst du dort "Select Top 1000 Rows" aus. Soweit dürftest du das ja schon kennen.
Die Datensätze werden nun in beliebiger Reihenfolge angezeigt. Nun willst Du sie aber sortiert haben. Ergänze den angezeigten SQL-Befehl z.B.:

SELECT Prim1, Prim2, Prim3, Feld1, Feld2, Feld
FROM Tabelle
ORDER BY Prim1, Prim2, Prim3

nun werden die Datensätze in der von Dir gewünschten Folge angezeigt.
Eisbergle ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 08.01.2017, 07:50   #9
Eisbergle
Neuer Benutzer
Neuer Benutzer
Standard

Deine zweite Frage verstehe ich nicht. Nimm einfach die KundenNr. 10001 oder 10002 ist wohl zu einfach.
Eisbergle ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:27 Uhr.


Partner und Co.
Access-Paradies -Alles rund um die Datenbank Microsoft Access -Code -Programme-Tools -Tipps   Kostenlose Tipps & Tricks, Downloads und Programme   www.kulpa-online.com - Tipps - Tricks - Tutorials - Meinungen - Downloads uvm...   vb@rchiv · Willkommen in der Welt der VB Programmierung   Access-Garhammer - Hier finden Sie jede Menge Beispiel-Datenbanken zu Access und mehr ...   mcseboard.de   Die Top Seite für Excel-VBA-Makros uvm.

Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

Copyright ©2000-2010 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günther Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.
Beachten Sie bitte auch unsere Nutzungsbedingungen.