sql >> データベース >  >> RDS >> Sqlserver

「SELECT *」を実行したときに、SQL Server は列の順序をどのように決定しますか?

    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
      

    1. SQL標準UPSERT呼び出し

    2. 動的SQLを使用したスト​​アドプロシージャに対するSQLServerのアクセス許可

    3. MySQLのcsvテーブルをインポートするときにUTF8文字列が無効です

    4. 50フィールドフォームを複数のテーブルに送信する。通常のPOST、AJAX POSTまたはその他?