我在 Microsoft SQL Server 上有一个库存表,在 AssetID、AssignedName、WarrantyExpires 等列中包含大约 550 行数据。但是,这些数据不按任何顺序排列。根据我的研究,我了解到 SQL 数据库没有指定的顺序,但是我想按 AssetID 对数据库进行排序,以便在我需要进入服务器并编辑某些行时更容易找到它们。原始表有一个名为“id”的主键,该主键增加 1。我可以在 SSMS 中运行什么来实现此目的?
我知道如何通过运行以下命令将数据从一个表复制到新表:
SELECT * INTO Computers2 FROM Computers
我尝试添加:
ORDER BY AssetID ASC
但新表的顺序与原始表相同。
通过一些技巧,你可以实现这一目标。
但是数据库不能以这种方式工作,因为您已经注意到结果集和表本质上是未排序的。
您不需要它,因为像第二个示例所示的表格视图也可以做到这一点。
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 |