J'essaye de créer la table de dictionary qui a seulement deux colonnes PK Id et nom unique:
CREATE TABLE [SnApp].[DictionaryErrorType] ( [Id] [int] IDENTITY(1,1) NOT NULL, [Name] [varchar](30) NOT NULL, CONSTRAINT UC_Name UNIQUE ([Name]), CONSTRAINT [PK_ID_DictionaryErrorType] PRIMARY KEY CLUSTERED ([Id] ASC) )
Insérer des valeurs:
INSERT INTO [SnApp].[DictionaryErrorType] (Name) VALUES ('Info'), ('Warning'), ('Error')
Après avoir fait:
SELECT * FROM [SnApp].[DictionaryErrorType]
La sortie a été sortingée par nom et non par key primaire
Pourquoi ?
Comment puis-je avoir seulement ces deux colonnes, mais sortingés par ID pas par nom?
Les données d'une table de server SQL ne sont pas commandées de manière inhérente. Cela existe juste.
Pour get la command correcte, utilisez ORDER BY
select * from [SnApp].[DictionaryErrorType] order by ID
Vous devez mentionner explicitement l'ordre par clause
SELECT * FROM [SnApp].[DictionaryErrorType] ORDER BY Id
Si vous avez un index ascendant groupé par défaut, il returnne dans l'ordre sortingé mais vous ne pouvez pas garantir des résultats sortingés