创建表,唯一的列更改排序顺序
问题描述:
我试图创造出只有两列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?
答
sql服务器表中的数据不是固有排序的。它只是存在。
为了得到正确的次序,使用ORDER BY
select *
from [SnApp].[DictionaryErrorType]
order by ID
答
你需要通过条款
SELECT *
FROM [SnApp].[DictionaryErrorType]
ORDER BY Id
明确提到为了如果您在默认情况下,有时聚集升序索引它返回排序,但你不能保证有排序的结果
任何订购你看到一个选择,没有一个'ORDER BY'是一个幻想,可以打破蝴蝶拍动着它的翅膀。 – xanatos
如果您**没有明确指定** ORDER BY'条款 - ***没有订购!*** - 如果您需要订单,请使用'ORDER BY' ..... –