具体来说,我需要知道查询是否
select * from [some_table]
将始终以相同的顺序返回列。
我没有看到任何迹象表明它不具有确定性,但由于我的应用程序的规格,我不能认为这是真的。 任何人都可以用文件的方式指出我吗? 我的搜索没有运气。
提前致谢。
答案 0 :(得分:0)
SELECT * FROM [some_table]
在同一个DB中始终返回相同的列顺序。
N.B。 我假设你有两个dbs 第一个DB命名为DBA 第二个DB名为DBB
在任一DB中都存在一个表TRIAL
在DBA中,TRIAL表按以下顺序包含以下字段: id,姓名,姓氏
在DBB中,TRIAL表按以下顺序包含以下字段: id,姓氏,姓名
执行时
SELECT * FROM DBA..TRIAL
你会有id,姓名,姓氏
DBB上的相同查询将导致: id,姓氏,姓名
答案 1 :(得分:0)
使用SELECT *时,将返回a)表格在FROM语句中出现的顺序b)列出现在数据库表格中的顺序。
来自MSDN:“这些列是由表或视图返回的,如FROM子句中指定的那样,以及它们在表或视图中的存在顺序。”
答案 2 :(得分:0)
只要不修改数据库的模式,它就是确定性的。 下面是一个示例,其中select *将更改字段的顺序而不更改表的实际结构:
Create table AAA
(
field1 varchar(10),
field2 varchar(10),
field3 varchar(10)
);
select *
- > field1 ,field2 ,field3
现在你做
alter table AAA drop column field2;
alter table AAA add field2 varchar(10)
select *
- > field1 ,field3 , field2
基本上,我不会指望字段的顺序,并且肯定会在select子句中指定它们。