表插入在sql server中没有任何顺序

时间:2014-05-31 08:40:13

标签: asp.net sql-server linq

我使用实体框架在asp.net中开发了一个系统。所有其他表都很好,但是当我在某些表中插入数据时,它不会按升序插入。可能是什么问题呢?? 以下是插入数据的方式:

1
10
11
12
13
2
21
22
23
24
25
3
31
32
4
5
6
7

请不要告诉我通过order by子句检索数据。我问的是插入订单。

1 个答案:

答案 0 :(得分:4)

SQL数据库中没有固有的顺序。当您直接或通过实体框架(EF)运行select时,您的数据库可以按照任何最适合数据检索的顺序返回行。

解决由于缺少订单SQL供应ORDER BY子句而可能发生的问题,该子句控制将检索到的信息返回给您的顺序。在EF中,这对应于OrderBy方法:

var results = db.MyTable.OrderBy(row => row.SomeField);

但是,在您的特定情况下,您似乎正在将数字数据插入基于字符的字段中。发生这种情况时,数据按字典顺序排序(即像字典中的单词),它会产生您看到的顺序。要维护预期的顺序,请使用适当的列数据类型:如果列是数字,请为其使用多种数字SQL类型之一。