gpt4 book ai didi

sql-server-2005 - SQL Server 2005 : natural sort order for 2-columns tables with unique constraint

转载 作者:行者123 更新时间:2023-12-04 07:10:52 25 4
gpt4 key购买 nike

我的 SQL Express 2005 数据库中有这个表:

CREATE TABLE [dbo].[test_sort_order](
[Col1] [int] IDENTITY(1,1) NOT NULL,
[Col2] [nchar](50) COLLATE French_CI_AS NULL,
CONSTRAINT [PK_test_sort_order] PRIMARY KEY CLUSTERED
(
[Col1] ASC
)WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY],
CONSTRAINT [UQ_test_sort_order] UNIQUE NONCLUSTERED
(
[Col2] ASC
)WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]

对它运行平面 SQL 查询时(通常是 SELECT * FROM test_sort_order ),我得到一个根据第二列(Col2)排序的结果集

我希望它(自然地)针对 PK 列排序(实际上是记录插入的顺序)
事实上,如果您从 Col2 中删除唯一约束,就会得到它。

当您保留唯一约束并向该表添加第三列(任何类型)时,事情变得更加神秘,因为 SELECT * 的结果然后根据自然顺序进行排序。

知道为什么会有这种行为吗?以及如何摆脱它。
谢谢

最佳答案

SELECT 是一个面向集合的操作,因为集合是无序的,所以不保证结果集中的特定顺序,除非您明确使用 ORDER BY。

关于sql-server-2005 - SQL Server 2005 : natural sort order for 2-columns tables with unique constraint,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/377332/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com