具体的には、クエリが
select * from [some_table]
常に同じ順序で列を返します。
非決定論的であるという兆候は見たことがありませんが、アプリケーションの仕様により、これが真実であるとは想定できません。誰かが何らかの方法でドキュメントを教えてもらえますか? 検索がうまくいきませんでした。
前もって感謝します。
具体的には、クエリが
select * from [some_table]
常に同じ順序で列を返します。
非決定論的であるという兆候は見たことがありませんが、アプリケーションの仕様により、これが真実であるとは想定できません。誰かが何らかの方法でドキュメントを教えてもらえますか? 検索がうまくいきませんでした。
前もって感謝します。
データベースのスキーマが変更されない限り、これは確定的です。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 句で確実に指定します。
SELECT * FROM [some_table]
同じDB内の列の同じ順序を常に返します。
注意: 2 つのデータベースがあると仮定します DBA という名前の最初の DB DBB という名前の 2 番目の DB
どちらのDBにもテーブルTRIALが存在します
DBA TRIAL テーブルには、id、name、surname の順にフィールドがあります。
DBB TRIAL テーブルには、ID、姓、名前の順にフィールドがあります。
実行すると
SELECT * FROM DBA..TRIAL
あなたはID、名前、姓を持っています
DBB で同じクエリを実行すると、id、姓、名前が返されます。
SELECT * を使用すると、a) FROM ステートメントで表が表示される順序、b) データベース内の表で列が表示される順序で列が返されます。
MSDN から: 「列は、FROM 句で指定されたテーブルまたはビューによって、テーブルまたはビューに存在する順序で返されます。」