插入和选择时奇怪的 sql server 行为

Max*_*sky 2 sql-server order-by

今天,在我们的 sql server 上的一个驱动器空间不足之后。该驱动器包含事件跟踪器日志,所以我认为这没什么大不了的,但后来我注意到当我将一条记录插入到数据库中时,它会将它插入到以前的记录之上而不是附加它。

当我做select *的时候,插入的记录首先出现。我能做些什么来解决这个问题吗?

section_d   section
-------------------
15          SDSD
16          SDSD2
17          SDSD2
18          adf

(4 row(s) affected)

insert into test2 values ('inserted row')

section_d   section
-----------------------
19          inserted row
15          SDSD
16          SDSD2
17          SDSD2
18          adf

(5 row(s) affected)
Run Code Online (Sandbox Code Playgroud)

Phi*_*lᵀᴹ 8

除非您ORDER BY在查询中提供子句,否则数据库不会以给定的顺序返回行,从而使INSERT“顺序”变得毫无意义。SELECT * FROM MYTABLE;查询的顺序未定义。

为简单的答案道歉!

  • 没有什么是错的,没有什么可以修复的。如果您希望对结果进行排序,请在查询中添加明确的“ORDER BY something”。 (2认同)