Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 如何在SQL Server中维护插入顺序_Sql Server - Fatal编程技术网

Sql server 如何在SQL Server中维护插入顺序

Sql server 如何在SQL Server中维护插入顺序,sql-server,Sql Server,我只是想知道我是否可以保持在SQL Server中插入数据的顺序 我正在做我自己的项目,这是一个有很多帖子的博客网站。我会将我的帖子保存到我的SQL Server,但我希望它们按插入的顺序排列 问题:我知道如果我在SQL Server中使用自动递增整数作为主键,我可以保持插入顺序。但是我想使用“Guid”作为主键,而不是标识。那么“Guid”似乎不能保持插入顺序 我应该使用自动递增整数作为插入顺序,使用Guid作为标识吗 或者,有没有其他方法可以在Guid设置为主键的情况下保持插入顺序 相关问题

我只是想知道我是否可以保持在SQL Server中插入数据的顺序

我正在做我自己的项目,这是一个有很多帖子的博客网站。我会将我的帖子保存到我的SQL Server,但我希望它们按插入的顺序排列

问题:我知道如果我在SQL Server中使用自动递增整数作为主键,我可以保持插入顺序。但是我想使用“Guid”作为主键,而不是标识。那么“Guid”似乎不能保持插入顺序

我应该使用自动递增整数作为插入顺序,使用Guid作为标识吗

或者,有没有其他方法可以在Guid设置为主键的情况下保持插入顺序

相关问题:我想保持插入顺序的原因是,这样我就不必使用导致额外排序过程的
orderby
子句

但我是否应该信任从数据库返回的数据的顺序,而不使用任何排序子句,如
orderby

我应该总是使用一些排序子句来排序我的数据吗?那么如果我有大量的数据要订购呢?那我怎么处理这种情况呢

很抱歉,帖子中有太多问题,但我相信它们都是相关的。

你被误导了

SQL表表示无序集。如果希望结果集按特定顺序排列,则需要在查询中使用
orderby
子句。SQL优化器可能不使用排序方式,而是寻找另一种按顺序返回结果的方法


您可以拥有一个非主键的
标识
列。但实际上,您可以同时拥有
identity
列和
guid
列,前者作为主键,后者作为唯一键。另一个解决方案是使用
CreatedAt
datetime。你可以用这个来订购。如果确实需要,甚至可以作为聚集索引。

当您在
INSERT…SELECT
语句中指定
ORDER BY
时,SQL Server将按指定的顺序分配
IDENTITY
值。但是,这并不意味着必须按该顺序插入行


如果需要按特定顺序返回行,则必须使用
orderby
来保证排序。索引可以根据查询细节有效地提供订单数据

表是一组无序的行。即使使用guid和auto inc number,也需要使用order by以特定顺序获取数据。RDBMS中没有插入顺序表这种东西。@GurV oh所以当我实际使用auto inc number时,数据在Sql management studio中按插入顺序显示,但当我实际查询表时,它不保证顺序/这就是你的意思吗??抱歉,我对数据库太陌生了。没有order by子句,无法保证数据会被排序。实际上,我有用于保存插入时间的主键Guid和datetime列,并设置了default=GETDATE(),但它不按插入日期排序数据。我应该设置其他内容吗?哦,你的意思是如果我有datetime列,那么我可以使用datatime列和orderby???@Michael。当然可以。您还可以在其上设置性能索引。当然,你必须使用按排序。哦,如果我有大量数据要按插入日期排序,那么我可能应该考虑制定索引计划。是吗?我只是好奇,谷歌必须有大量的数据来比较和排序的日期,它如何处理在设置我的数据库的中间。haGoogle的搜索引擎不使用关系数据库。为避免在执行计划中进行排序,索引键应包括等式
WHERE
子句谓词,后跟排序和/或筛选日期。