Dopouštíte se běžného omylu převzetí pořadí v tabulce. Stoly nemají pořadí. Pouze výsledky mají pořadí, které není určeno, pokud není specifikováno explicitní ORDER BY.
Můžete si položit jinou otázku:jak je přiřazena hodnota generovaná identitou v případě souběžných vložek? Odpověď je jednoduchá:to je jedno . A pokud uděláte jakýkoli předpoklad o objednávce, váš kód je poškozen. Totéž platí pro mezery. Vaše aplikace by měla fungovat, i když jsou vygenerované identity zcela náhodné a správně napsaná aplikace bude fungovat, pokud je identita zcela náhodná. Použijte SCOPE_IDENTITY()
pro načtení poslední vložené identity. Ještě lépe, použijte OUTPUT
klauzule INSERT
, funguje také pro víceřadé vložky.
Pro pořádek:identity jsou generovány v pořadí, ve kterém operace získávají přístup k proud protokolu .