Toon posts:

[MSSQL] Vraag

Pagina: 1
Acties:

Verwijderd

Topicstarter
Aangezien ik hier noodgedwongen in SQL Server v6.5 ontwikkel heb ik te maken met het resetten van de autonummering bij een crash of wat dan ook. Hiervoor bied de Stored Procedure SP_Checkidents een goede uitkomst.

Echter, er werd mij laatst verteld dat dat lang niet het enige probleem is met de autonummering in SQL Server v6.5. Er werd beweerd dat de autonummering zowiezo in de soep loopt mits je over een aantal duizend (er werd 30000 genoemd) records zou komen. Fouten als het vooruitspringen van 2000 nummers, het terugspringen en ook weer het volledig resetten werden genoemd.

Ik heb even op google gezocht maar kon eerlijk gezegd niks vinden. Weet iemand hier meer van eventueel? En mocht het waar zijn een eventuele oplossing? Ik heb weinig zin om zelf een stored procedure te schrijven die bij elke insert het ID nummer eentje ophoogt, daar ik dat nogal omslachtig zou vinden.

  • LordLarry
  • Registratie: Juli 2001
  • Niet online

LordLarry

Aut disce aut discede

Nooit van gehoord. Zou je voortaan een betere topic willen verzinnen? Dankje

We adore chaos because we like to restore order - M.C. Escher


Verwijderd

Wat dacht je van http://support.microsoft.com ?
Voor SQLServer 6.5 zijn er een aantal servicepacks verschenen. Het product zelf is overigens al uitgerangeerd en wordt niet meer gesupport (dus security leaks worden niet meer gepatcht). Ik heb wel eens gelezen dat 6.5 problemen had met identity columns, maar 6.5 had wel meer kuren, dat ik maar wat blij was toen ik 7.0 kocht.

Ik vind verder dat iemand noodgedwongen laten werken aan NIEUWE software / uitbreidingen van software voor 6.5, erg triest is en de titel "domste actie van 2002" mag krijgen. Daar kan jij niets aan doen, maar je baas wel.

  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 22-06 10:32

_Thanatos_

Ja, en kaal

Je zou MAX() kunnen gebruiken, maar dan heb je voor een nieuw record dezelfde ID wanner je ervoor de laatste(n) verwijdert.
Je zou van die ID sowieso een primary key moeten maken. Als er dan een identity wordt gemaakt die al bestaat, leidt dat in ieder geval niet tot integriteitsfouten enzo. Als een identity bijvoorbeeld 2000 te hoog gegenereerd wordt, is dat M.I. helemaal niet erg, tenzij je er mee gaat rekenen.

日本!🎌


  • zneek
  • Registratie: Augustus 2001
  • Laatst online: 08-02-2025
of je creeert een losse ident tabel, en een stored proc die hier een waarde uithaalt. In de proc haal de je key, en verhoog je hem 1 terwijl je de ident tabel lockt. Ietjes om, maar werkt wel. En je hebt zelf de controle over de keys.