gpt4 book ai didi

sql - 当您执行 `SELECT *` 时,SQL Server 如何确定列的顺序?

转载 作者:行者123 更新时间:2023-12-03 23:30:33 25 4
gpt4 key购买 nike

当您执行 SELECT * 时,SQL Server 如何确定列的顺序?

我知道“Order By”对于数据排序至关重要,但我希望列名保持一致。

注意:我的代码不依赖于返回列的实际顺序。我只想知道 SQL Server 如何决定对列名进行排序。

在我的团队使用的大约 20 台计算机中,其中一台的行为有所不同。任何差异都值得研究。当我们打开 SQL Server Management Studio 时,所有计算机的列名顺序似乎都相同。当我们的应用程序进行查询时,我看到了差异。

我使用的是 SQL Server 2008 和 SQL Server 2008 R2。我的应用程序使用 C# System.Data.SqlClient 来访问数据库。

编辑:
我的问题原来是其中一台计算机被配置为以“sa”而不是预期用户身份登录。当我们打算查询 View 时,查询直接命中表。感谢您帮助了解 sys.columns

最佳答案

它们的顺序是 column_id从系统来看sys.columns .

您可以通过以下方式检查:

SELECT column_id, name
FROM sys.columns
WHERE object_id = Object_id('MyTableName')
ORDER BY column_id

编辑

这是给民主党的。您应该在更大的表上进行测试,但看起来它使用的是表中定义的顺序,而不是索引:
CREATE TABLE #T (cola int, colb int, colc int)

INSERT INTO #T
VALUES
(1,2,3),
(2,3,4),
(4,5,6)

SELECT * FROM #T

CREATE INDEX ix_test ON #T (colb, colc, cola)

SELECT * FROM #t
WHERE colb > 0

DROP TABLE #T

关于sql - 当您执行 `SELECT *` 时,SQL Server 如何确定列的顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10214114/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com