首页 > 解决方案 > 将多条记录插入 SQL 表时,它不遵循顺序

问题描述

当使用单个insert语句将多条记录添加到一个表中时,如下所示,选择时不遵循相同的顺序。我知道这不会影响任何事情,但我可以知道为什么会这样吗?

CREATE TABLE [category]
(
    [category_id] int IDENTITY(1,1) PRIMARY KEY,
    [category_name] varchar(255) NOT NULL UNIQUE
);
INSERT INTO [category] (category_name) 
VALUES ('Laptops and Accessories'),
       ('AI Development Kit'),
       ('Cameras and Lens');

SELECT * FROM [category]

输出:

在此处输入图像描述

我正在使用 SQL Server。

标签: sqlsql-serverdatabaseselectsql-insert

解决方案


您的选择声明明确表示:“我不在乎订单!” - 它通过省略该ORDER BY子句来做到这一点。

如果你说SELECT * FROM [category] ORDER BY [category_id]你会得到一个有序的结果集

1, 'Laptops and Accessories'
2, 'AI Development Kit'
3, 'Cameras and Lens'

这正是您在INSERT声明中给出的命令。

SELECT没有子句的 SQL 中的 sORDER BY不仅不希望按某种顺序排列,而且在多次调用时也不希望它们具有相同的顺序。


推荐阅读