1

具体的には、クエリが

select * from [some_table]

常に同じ順序で列を返します。

非決定論的であるという兆候は見たことがありませんが、アプリケーションの仕様により、これが真実であるとは想定できません。誰かが何らかの方法でドキュメントを教えてもらえますか? 検索がうまくいきませんでした。

前もって感謝します。

4

3 に答える 3

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 句で確実に指定します。

于 2013-07-18T19:51:47.813 に答える
0
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、姓、名前が返されます。

于 2013-07-18T18:54:24.773 に答える
0

SELECT * を使用すると、a) FROM ステートメントで表が表示される順序、b) データベース内の表で列が表示される順序で列が返されます。

MSDN から: 「列は、FROM 句で指定されたテーブルまたはビューによって、テーブルまたはビューに存在する順序で返されます。」

http://msdn.microsoft.com/en-us/library/ms176104.aspx

于 2013-07-18T19:03:00.780 に答える