创建具有唯一列更改排序顺序的表

时间:2017-04-04 10:01:03

标签: sql sql-server

我试图创建只有两列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而不是按名称排序?

2 个答案:

答案 0 :(得分:3)

sql server表中的数据本身并不是有序的。它只是存在。

要获得正确的订单,请使用ORDER BY

select * 
from [SnApp].[DictionaryErrorType]
order by ID

答案 1 :(得分:1)

您需要明确提及按条款

SELECT * 
FROM [SnApp].[DictionaryErrorType]
    ORDER BY Id

如果您有时默认使用聚集升序索引,它会按排序顺序返回,但您无法保证在那里排序结果