有没有办法在SSMS中复制和排序表?

问题描述 投票:0回答:1

我在 Microsoft SQL Server 上有一个库存表,在 AssetID、AssignedName、WarrantyExpires 等列中包含大约 550 行数据。但是,这些数据不按任何顺序排列。根据我的研究,我了解到 SQL 数据库没有指定的顺序,但是我想按 AssetID 对数据库进行排序,以便在我需要进入服务器并编辑某些行时更容易找到它们。原始表有一个名为“id”的主键,该主键增加 1。我可以在 SSMS 中运行什么来实现此目的?

我知道如何通过运行以下命令将数据从一个表复制到新表:

SELECT * INTO Computers2 FROM Computers
我尝试添加:
ORDER BY AssetID ASC
但新表的顺序与原始表相同。

sql sql-server ssms
1个回答
0
投票

通过一些技巧,你可以实现这一目标。

但是数据库不能以这种方式工作,因为您已经注意到结果集和表本质上是未排序的。

您不需要它,因为像第二个示例所示的表格视图也可以做到这一点。

CREATE TABLe computer (id int, name varchar(10))
INSERT INTo computer VALUES(2,'A'), (5,'A'),(01,'A'),(3,'A')
4 rows affected
WITH CTE as (
  SELECT TOP 3900000000 * FROM computer order by id)
SELECT * INTO computers2 FROM CTE
4 rows affected
SELECT * FROM computers2
id 名字
1 A
2 A
3 A
5 A
CREATE view mycomputers as SELECT TOP 3900000000 * FROM computer order by id
SELECT * FROM mycomputers
id 名字
1 A
2 A
3 A
5 A

小提琴

© www.soinside.com 2019 - 2024. All rights reserved.