我试图创建只有两列PK Id和唯一名称的字典表:
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)
)
插入值:
INSERT INTO [SnApp].[DictionaryErrorType] (Name)
VALUES ('Info'), ('Warning'), ('Error')
完成后:
SELECT *
FROM [SnApp].[DictionaryErrorType]
I got output sorted by Name not by primary key
为什么?
我怎么才能只有这两列,而是按ID而不是按名称排序?
答案 0 :(得分:3)
sql server表中的数据本身并不是有序的。它只是存在。
要获得正确的订单,请使用ORDER BY
select *
from [SnApp].[DictionaryErrorType]
order by ID
答案 1 :(得分:1)
您需要明确提及按条款
SELECT *
FROM [SnApp].[DictionaryErrorType]
ORDER BY Id
如果您有时默认使用聚集升序索引,它会按排序顺序返回,但您无法保证在那里排序结果