Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Renvoie les lignes dans l'ordre exact où elles ont été insérées

Un select requête sans order by n'est pas récupérer les lignes dans n'importe quel ordre particulier. Vous devez avoir un order by pour obtenir une commande.

SQL Server n'a pas de méthode par défaut pour récupérer par ordre d'insertion. Vous pouvez le faire, si vous avez les informations dans la ligne. Le meilleur moyen est une colonne d'identité de clé primaire :

TableId int identity(1, 1) not null primary key

Une telle colonne est incrémentée à mesure que chaque ligne est insérée.

Vous pouvez également avoir un CreatedAt colonne :

CreatedAt datetime default getdate()

Cependant, cela pourrait avoir des doublons pour des insertions simultanées.

Le point clé, cependant, est qu'un select sans order by La clause renvoie un ensemble non ordonné de lignes.