Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.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
Asp.net aspnet_用户表的排序顺序_Asp.net_Sql Server_Asp.net Membership - Fatal编程技术网

Asp.net aspnet_用户表的排序顺序

Asp.net aspnet_用户表的排序顺序,asp.net,sql-server,asp.net-membership,Asp.net,Sql Server,Asp.net Membership,我想知道aspnet\u Users表是否总是按用户名排序,即使我添加的新用户按字母顺序排列在两个现有用户之间 我注意到方法Membership.GetAllUsers()似乎总是返回一个排序的MembershipUsers集合 另外,当我查看SQLServerManagementStudio并运行一个简单的SQL查询时,没有ORDERBY子句 SELECT [UserName] FROM [MyDb].[dbo].[aspnet_Users] …我总是得到一个排序的结果列表 我仍然不太熟

我想知道
aspnet\u Users
表是否总是按用户名排序,即使我添加的新用户按字母顺序排列在两个现有用户之间

我注意到方法
Membership.GetAllUsers()
似乎总是返回一个排序的MembershipUsers集合

另外,当我查看SQLServerManagementStudio并运行一个简单的SQL查询时,没有
ORDERBY
子句

SELECT [UserName]
  FROM [MyDb].[dbo].[aspnet_Users]
…我总是得到一个排序的结果列表

我仍然不太熟悉SQL Server,但我希望在向表中添加新行时,它(物理上)会附加到表的末尾。当我在没有ORDERBY的情况下运行select语句时,行将按照它们最初插入数据库的顺序被选择(因此没有任何特定的排序顺序)

我想我错了。但是它到底是如何工作的呢?aspnet_用户表是否有什么特别之处

我很高兴GetAllUsers()返回的MemberShipUserCollection已排序,但它总是有保证的吗

谢谢你的信息

更新

我刚刚注意到数据库包含一个名为
aspnet\u Membership\u GetAllUsers
的存储过程。此过程实际上包含一个由
UserName
生成的
orderby
子句。因此,如果在代码中使用
Membership.GetAllUsers()
时确实总是调用此存储过程(至少如果我使用的是SqlMembershipProvider),它解释了为什么
Membership.GetAllUsers()
返回的集合按用户名排序


仍然存在一个问题:Membership.GetAllUsers()是否实际基于此存储过程?

用户名上可能有聚集索引。这意味着表中的行是按用户名顺序存储的。SQL Server通常(但不总是)按其使用的索引顺序返回行


如果没有订购方,则无法保证。因此,如果您依赖于排序的结果,请不要忘记排序依据(:)

用户名上可能有一个聚集索引。这意味着表中的行是按用户名顺序存储的。SQL Server通常(但不总是)按其使用的索引顺序返回行


如果没有订购方,则无法保证。因此,如果您依赖于排序的结果,请不要忘记
order by
:)

如果SQL中没有明确指定
order by
子句,任何顺序都是偶然的,绝对不能以任何方式、形状或形式保证。不要依赖它


如果需要特定的顺序,请使用
orderby
来定义该顺序。

如果SQL中没有明确指定
orderby
子句,则任何顺序都是偶然的,并且绝对不能以任何方式、形状或形式保证。不要依赖它


如果您需要特定的订单,请使用orderby来定义该订单。

用户名和应用程序ID上有一个聚集索引。由于您通常只使用1个applicationID,因此它将按用户名排序。表中的数据按其聚集索引排序。这意味着您通常会看到按聚集列的顺序返回的未排序日期。然而,这永远无法保证。因此,如果希望结果按特定顺序返回,则必须使用ORDER BY。每当您将数据插入到具有聚集索引的表中时,它都会将数据插入到物理上属于的表中。查看分页和集群与非集群。它将帮助您了解SQL Server如何存储数据。请参阅此处以了解概述。

用户名和应用程序ID上有一个聚集索引。由于您通常只使用1个applicationID,因此它将按用户名排序。表中的数据按其聚集索引排序。这意味着您通常会看到按聚集列的顺序返回的未排序日期。然而,这永远无法保证。因此,如果希望结果按特定顺序返回,则必须使用ORDER BY。每当您将数据插入到具有聚集索引的表中时,它都会将数据插入到物理上属于的表中。查看分页和集群与非集群。它将帮助您了解SQL Server如何存储数据。请看这篇文章以获得概述