Announcement

Collapse
No announcement yet.

verdoppeln der ID

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • verdoppeln der ID

    SQL 2008
    Feld "ID" bigint, nicht null, eindeutig,Identität 1,1 (autoincrement)

    wird über eine Procedure (SP insert Into) ein Datensatz angelegt, wir die ID um zwei erhöht sonst nur um eins. Hat jemand eine erklärung?

    Danke Klaus


    SELECT IDENT_INCR('tabellenname') gibt 1 zurück
    und es gibt definitiv keine zwei Inserts.
    Bei Insert über Management-Studio wir der Wert um 1 erhöht, wird einmal die SP ausgeführt wird um zwei erhöht

    Gruß Klaus
    Zuletzt editiert von KlausP; 07.07.2009, 23:27.

  • #2
    Wenn die Schrittweite garantiert 1 ist (kann man prüfen mit "SELECT IDENT_INCR('tabellenname')), dann kann das nur so passieren, dass hier eigentlich zwei Inserts erfolgen, wobei einer wieder gecancelt oder gelöscht wird. Ich würde da mal testweise ein direktes Insert im ManagementStudio machen und dann kontrollieren, wenn es da um zwei springt, dann hat es echt was, habe ich aber bisher noch nie erlebt. Wenn, dann waren es wie gesagt immer zwei Inserts, bei dem dann eines wieder zurückgenommen oder gelöscht wurde.

    bye,
    Helmut

    Comment


    • #3
      Hallo Klaus,

      als kleine Demo zu dem was Helmut sagt; auch mir ist sonst nicht bekannt, das es unter anderen Umständen auftreten kann:
      [highlight=SQL]SET NOCOUNT ON;
      CREATE TABLE #Test
      (Id int IDENTITY(1,1));
      GO
      INSERT INTO #Test DEFAULT VALUES; -- 1
      INSERT INTO #Test DEFAULT VALUES; -- 2
      GO
      BEGIN TRANSACTION
      INSERT INTO #Test DEFAULT VALUES; -- 3?
      ROLLBACK TRANSACTION -- Rollback
      GO
      INSERT INTO #Test DEFAULT VALUES; -- 4
      GO

      SELECT * FROM #Test

      GO
      DROP TABLE #Test;[/highlight]
      Ergebnis:[highlight=Code]Id
      -----------
      1
      2
      4[/highlight]
      Olaf Helper

      <Blog> <Xing>
      * cogito ergo sum * errare humanum est * quote erat demonstrandum *
      Wenn ich denke, ist das ein Fehler und das beweise ich täglich

      Comment

      Working...
      X