auto_increment

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • auto_increment

    Hallo zusammen,

    meine frage ist einfach wie man bei einer MSSQL Datenbank 'auto_increment' richtig realisiert.

    Da ich beim importieren meines Datenbankmodel von mysql -> mssql leider Fehlermeldungen im Bezug zu 'auto_increment' bekommen habe.

    Thanx
    Heinzelmännchen

  • #2
    Re: auto_increment

    Original geschrieben von Heinzelmännchen
    [...] leider Fehlermeldungen [...] bekommen habe.
    ach. und was sollen wir jetzt machen?

    die meldung raten? jeder hat drei versuche?
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      Hallo,

      hatte im Betreff extra MSSQL ausgewählt was leider jedoch wohl keine Rolle spielt.

      Tja, bei MSSQL gibt es 'AUTO_INCREMENT' nicht und daher bekomme ich diese Fehlermeldung:
      Zeile 4: Falsche Syntax in der Nähe von 'AUTO_INCREMENT'.

      In der Zeile steht folgenendes:
      GrpID INT NOT NULL AUTO_INCREMENT,

      Ich bin ja davon ausgegangen das mir hier jemand helfen kann der mit MSSQL sich auch ein wenig aus kennt. Daher hatte ich nur kurz mitgeteilt das ich eine Fehlermeldung bekommen habe.

      Kommentar


      • #4
        Dann mach doch das AUTO_INCREMENT in der MySQL-DB weg - nicht die Spalte löschen, nur das Attribut. Und dann exportierst du die Struktur.
        Hinterher kannst du ja die MySQL-DB wieder mit AUTO_INCREMENT versehen.
        it's not a bug,
        it's a feature!

        Kommentar


        • #5
          Original geschrieben von XGremliN
          Dann mach doch das AUTO_INCREMENT in der MySQL-DB weg - nicht die Spalte löschen, nur das Attribut. Und dann exportierst du die Struktur.
          Hinterher kannst du ja die MySQL-DB wieder mit AUTO_INCREMENT versehen.
          Ja, das ist mir schon klar das ich das ganze dann weg machen kann. Also die Datenbankstruktur besteht in MySQL schon. Diese möchte jetzt nur noch nach MSSQL übertragen. Jedoch sind einige Fehler 'AUTO_INCREMENT' und MSSQL unterstützt dieses Attribut nicht.

          Wenn ich das Attribut jetzt weg lasse, kann ich ja nur das ganze später folgender Maßen realisieren.

          Letzte Vergebene Nummer (GrpID) holen und dann GrpID + 1 wieder schreiben.

          Sowas wollte ich eigentlich unterlassen. Daher frage ich ja auch nach einer Sauberen Lösung.

          Kommentar


          • #6
            Dann such doch einfach ob es bei MSSQL ein äquivalentes Attribut zum AUTO_INCREMENT von MySQL gibt.
            Wenn nicht musst du es so machen, wie du eben selbst gesagt hattest.
            it's not a bug,
            it's a feature!

            Kommentar


            • #7
              Original geschrieben von XGremliN
              Dann such doch einfach ob es bei MSSQL ein äquivalentes Attribut zum AUTO_INCREMENT von MySQL gibt.
              Hi,

              und genau das habe ich jetzt auch gemacht. Die Lösung bei MSSQL ist dabei IDENTITY(startwert , erhöhungswert )

              Hier jetzt das Beispiel für CREATE TABLE:

              Code:
              create table Groups
              (
                  GrpID               INT IDENTITY(0, 3) NOT NULL,
                  GrpName             VARCHAR(45)  NOT NULL,
                  ModID               VARCHAR(6)   NOT NULL,
                  PRIMARY KEY(GrpID)
              );
              Bei jedem neuen Insert erhöht sich jetzt der Wert von GrpID um 3.
              Der Erste '0' der Zeite '3' der Dritte '6' usw.

              Das ganze geht dann auch negativ. Wenn ich Erhöhungswert einfach mit einem Minus davor schreibe.

              Kommentar


              • #8
                Sorry, Aufgrund vorheriger Fehlermeldung wurde der Eintrag doppelt geposet.

                Kommentar


                • #9
                  Ein kleiner Tip, um das gleiche unter MSSQL zu erreichen wie bei MySQL mit 'auto_increment' kannst du folgendes machen:

                  CREATE TABLE [Tabelle]
                  (
                  [AUTOINCREMENT_FELD] INT IDENTITY (1,1) NOT NULL,
                  [ANDERES_FELD] VarChar (100) NULL
                  )
                  GO

                  => Mit dem 'Identity' flag, kannst du das auch unter MSSQL machen

                  Kommentar


                  • #10
                    Original geschrieben von mshack
                    Ein kleiner Tip, um das gleiche unter MSSQL zu erreichen wie bei MySQL mit 'auto_increment' kannst du folgendes machen:

                    CREATE TABLE [Tabelle]
                    (
                    [AUTOINCREMENT_FELD] INT IDENTITY (1,1) NOT NULL,
                    [ANDERES_FELD] VarChar (100) NULL
                    )
                    GO

                    => Mit dem 'Identity' flag, kannst du das auch unter MSSQL machen
                    Hast den Thread wohl nicht gelesen!

                    Kommentar

                    Lädt...
                    X